ruby-on-rails - 使用Rails观察器跟踪字段变化

标签 ruby-on-rails observer-pattern

我试图找出一种当某人更新对象时记录更改的方法。现在,我的观察者将存储所有当前值,但是我不知道如何确定更改了哪些字段以及如何将它们存储在feed db中。

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

最佳答案

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

object.changes

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

关于ruby-on-rails - 使用Rails观察器跟踪字段变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7071347/

相关文章:

kotlin - 数据绑定(bind)和 BaseObserver - Android MVVM

ios - 相机消失后如何恢复播放音频?

javascript - Gmaps4Rails - 自定义信息窗口不工作

c# - 合并从多个实例触发的事件的可观察序列的正确方法

android - 如果我清理反向引用,我可以观察 ViewModel 吗?

javascript - 让两种不同的点击方法在单个 Jquery 函数中工作

Java EE 触发事件创建一个新实例

ruby-on-rails - 用户 "postgres"的 PostgreSQL 密码身份验证失败,与我的应用程序配置中指定的用户不同

ruby-on-rails - 在 Rails 中,是否使用表单助手?

ruby-on-rails - rails 上的 ruby 。付费发表文章