2013-12-10 3 views
1

Я хочу, чтобы иметь возможность динамически добавлять, когда нет соответствующего атрибута в базе данныхОпределение методов призрак для атрибутов в Ruby On Rails

attr_accessor 

Это переписал атрибуты я в настоящее время имели:

def method_missing(method, arg) 
    self.class.attr_accessor.send(method) || super 
end 

Я также попытался загрузить переменные в одноэлементный класс, но это дало мне ошибку 0 для 1 аргумента.

+0

try self.class.send (: attr_accessor, method) || супер –

ответ

1

Это вы хотите?

def method_missing(method, *args) 
    if method.to_s['='] 
    self.define_singleton_method(method) do |*args| 
     self.instance_variable_set("@#{method[0..-2]}", args.first) 
    end 
    else 
    self.define_singleton_method(method) do 
     self.instance_variable_get("@#{method}") 
    end 
    end 
    self.send(method, *args) rescue super 
end 
Смежные вопросы