【问题标题】:Tracking field changes with rails observers使用 rails 观察者跟踪字段变化
【发布时间】:2011-08-15 22:03:27
【问题描述】:

我正在尝试找出一种在有人更新对象时记录更改的方法。现在,我的观察者将存储所有当前值,但我不知道如何确定哪些字段已更改以及如何将它们存储在我的提要数据库中。

为了简单起见,这里是一个示例模型和观察者。我的目标是跟踪哪个字段已更新并将其存储在我的 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

【问题讨论】:

    标签: ruby-on-rails observer-pattern


    【解决方案1】:

    要了解哪些字段已更改,请执行以下操作:

    object.changes
    

    在这里查看好文章:http://ryandaigle.com/articles/2008/3/31/what-s-new-in-edge-rails-dirty-objects

    【讨论】:

    • 现在我只需要让我的 ruby​​ foo 配对,这样我就可以遍历哈希,这样我就可以让它输出一些干净的东西。感谢您的提示!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-28
    • 2011-01-08
    • 1970-01-01
    相关资源
    最近更新 更多