有没有可用的方法来查找对象的更改属性?

时间:2010-09-21 15:25:00

标签: ruby-on-rails ruby

我想只获取对象的已更改属性。是否有任何方法可以返回所有更新的属性?

2 个答案:

答案 0 :(得分:11)

鉴于您的问题中没有太多细节,我将假设您指的是ActiveRecord对象。要在所谓的“脏对象”上查看已更改的属性,您可以执行以下操作:

User.changed #=> ["name", "email"]

User.changes #=> { "name" => ["Joe", "Joseph"] }

如果您需要检查特定属性,还有每个属性的方法。

User.name_changed? #=> true

User.name_change #=> ["Joe", "Joseph"]

此处有更多详情: http://ryandaigle.com/articles/2008/3/31/what-s-new-in-edge-rails-dirty-objects

答案 1 :(得分:0)

是ActiveRecord:很脏,但是您无法看到保存到Db的对象的更改,例如user.save :(