Coś do setterów/getterów dla zserializowanych parametrów

czesc
jest może jakis gem albo jakieś inne rozwiązanie żeby nie wpisywać do modelu getterów/setterów. Wszystkie rzadko używane pola, których nie używam w zapytaniach sql wrzucam do zserializowanej kolumny i dla każdego muszę dodac

[code=ruby]
def costam=(value)
parameters[:costam] = value
end

def costam
parameters[:costam]
end

def costam?
parameters[:costam].to_i == 1
end[/code]

Przepraszam, ale: attr_reader, attr_writer, attr_accessor?
Na przykład wywoływane dynamicznie (class_eval albo mniej brutalne metody)?

a no tak, jakieś zaćmienie :slight_smile: to zostaje tylko dodac metode dla costam?

hmm, spróbowałem dać attr_accessor ale cos nie robi, moze dlatego ze to serializowane ?

Jeśli parametry są na sztywno określone to możesz zrobić coś w tym stylu:

class Clazz parameters = {} # usun ta linijke jesli to activerecord ["first", "second"].each do |name| define_method(name) { parameters[name] } define_method("#{name}?") { parameters[name].to_i == 1 } define_method("#{name}=") {|*args| parameters[name] = args[0] } end end
Poczytaj sobie też o method_missing.

Jeśli potrzebujesz tego w kilku klasach to można dodatkowo opakować np. w moduł.