для самых последних версий Rails), чтобы создать эти вспомогательные методы при
я есть объект, который наследуется от ActiveRecord, но у него есть атрибут, который не сохраняется в БД, например:
class Foo < ActiveRecord::Base
attr_accessor :bar
end
Я хотел бы иметь возможность отслеживать изменения в 'bar' с помощью таких методов, как 'bar_changed?', Как это предусмотрено ActiveModel Dirty. Проблема в том, что когда я пытаюсь реализовать Dirty на этом объекте, как описано вдокументыЯ получаю сообщение об ошибке, так как ActiveRecord и ActiveModel определилиdefine_attribute_methods
, но с другим количеством параметров, поэтому я получаю сообщение об ошибке при попытке вызватьdefine_attribute_methods [:bar]
.
Я пробовал псевдонимыdefine_attribute_methods
перед включениемActiveModel::Dirty
, но без везения: я получаю не определенную ошибку метода.
Есть идеи, как с этим бороться? Конечно, я мог написать необходимые методы вручную, но мне было интересно, возможно ли это сделать с помощью модулей Rails, расширив функциональность ActiveModel до атрибутов, которые не обрабатываются ActiveRecord.