我正在使用Ruby on Rails 3.2.2,并且我想知道以下内容是否是“正确” /“正确” /“确定”方式来覆盖我的class属性的setter方法。
attr_accessible :attribute_name
def attribute_name=(value)
... # Some custom operation.
self[:attribute_name] = value
end
上面的代码似乎按预期工作。但是,我想知道,通过使用上面的代码,将来我是否会遇到问题,或者至少会遇到Ruby on Rails“我期望” /“可能发生”的问题。如果那不是重写setter方法的正确方法,那么正确的方法是什么?
注意:如果我使用代码
attr_accessible :attribute_name
def attribute_name=(value)
... # Some custom operation.
self.attribute_name = value
end
我收到以下错误:
SystemStackError (stack level too deep):
actionpack (3.2.2) lib/action_dispatch/middleware/reloader.rb:70