Я использую 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