私は Ruby on Rails 3.2.2 を使用していますが、以下が my 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