我正在研究一些使用了大量after_save回调的代码,我记得看到一个插件允许model.changes
数组在调用save
后保持不变。
如果我可以在我的if body_did_change?
来电中写after_save
,而不是仅使用before_save
过滤器来设置标记,那将是一个很好的帮助。< / p>
我之前自己写过这样的东西,但是我更喜欢使用支持的东西,我发誓我以前见过这个插件。
答案 0 :(得分:3)
你的回答迟到了,但我自己也在寻找同样的事情......
Rails 3支持以下内容:
person.name # => 'bob'
person.name = 'robert'
person.save
person.previous_changes # => {'name' => ['bob, 'robert']}
见这里:http://edgeapi.rubyonrails.org/classes/ActiveModel/Dirty.html
干杯
答案 1 :(得分:2)
我相信它现在是内置的 - 最新功能。我一直在我的项目中使用它..见http://ryandaigle.com/articles/2008/3/31/what-s-new-in-edge-rails-dirty-objects