我想只获取对象的已更改属性。是否有任何方法可以返回所有更新的属性?
答案 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 :(