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

kru*_*hah 6 ruby ruby-on-rails

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

Sid*_*ane 11

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

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

User.changes #=> { "name" => ["Joe", "Joseph"] }
Run Code Online (Sandbox Code Playgroud)

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

User.name_changed? #=> true

User.name_change #=> ["Joe", "Joseph"]
Run Code Online (Sandbox Code Playgroud)

更多细节:http: //ryandaigle.com/articles/2008/3/31/what-s-new-in-edge-rails-dirty-objects