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