ActiveRecord的“脏”插件?

时间:2010-02-09 09:28:11

标签: ruby-on-rails activerecord ruby-on-rails-plugins

我正在研究一些使用了大量after_save回调的代码,我记得看到一个插件允许model.changes数组在调用save后保持不变。

如果我可以在我的if body_did_change?来电中写after_save,而不是仅使用before_save过滤器来设置标记,那将是一个很好的帮助。< / p>

我之前自己写过这样的东西,但是我更喜欢使用支持的东西,我发誓我以前见过这个插件。

2 个答案:

答案 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