Отслеживание изменений полей с помощью наблюдателей rails

Я пытаюсь найти способ регистрировать изменения, когда кто-то обновляет объект. Прямо сейчас мой наблюдатель будет хранить все текущие значения, но я не понимаю, как определить, какие поля были изменены, и как сохранить их в моей базе данных каналов.

Для простоты здесь представлены пример модели и наблюдателя. Моя цель - отследить, какое поле было обновлено, и сохранить его в моей базе данных 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
10
задан jlarry 15 August 2011 в 22:03
поделиться