我正在使用 Ruby on Rails 3.2.2,我想知道以下是否是覆盖我的类属性的 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