У меня есть объект, который наследуется от 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.