Я пытаюсь найти способ регистрировать изменения, когда кто-то обновляет объект. Прямо сейчас мой наблюдатель будет хранить все текущие значения, но я заблудился о том, как определить, какие поля изменились и как сохранить их в моей базе данных.
Для простоты приведем пример модели и наблюдателя. Моя цель - отследить, какое поле было обновлено, и сохранить его в моей базе данных Feed. Я открыт для добавления новых полей в мою базу данных, если они необходимы. Дайте знать, если у вас появятся вопросы.
Модель
# Table name: milestones
#
# id :integer not null, primary key
# name :string(255)
# project_id :integer
# target_date :datetime
Наблюдатель отслеживает изменения
class MilestoneObserver < ActiveRecord::Observer
def after_update(milestone)
f = Feed.new(
:action => milestone.name,
:project_id => milestone.project_id,
:updated_by_id => "Jordan")
f.save
end
end