Tag: 二传手

在Ruby on Rails中重写setter方法的正确方法是什么?

我正在使用Ruby on Rails 3.2.2,我想知道是否以下是一个“正确”/“正确”/“确定”的方式来覆盖我的类属性的setter方法。 attr_accessible :attribute_name def attribute_name=(value) … # Some custom operation. self[:attribute_name] = value end 上面的代码似乎按预期工作。 但是, 我想知道,通过使用上面的代码,将来我是否会遇到问题,或者至less是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