有没有办法获得当前变量? 假设我在方法中有一个“title”属性,我想用变量的旧值检入?
我怎么能做到这一点?
答案 0 :(得分:10)
ActiveRecord提供了一整套处理“Dirty”属性的方法。
在您的情况下,您可以致电title_was
以获取该变量的最近保存版本
答案 1 :(得分:0)
如果您想知道所有已更改的属性及其旧值,可以使用 changed_attributes 方法,该方法将返回包含所有已更改属性及其先前值的哈希值(请注意哈希内容可以是在保存新对象之前检索。)
假设您有一个具有old_name标题的对象:
a = YourModel.where(:title => "old_name")
a.title = "new_title"
a.changed_attributes
结果将是“: { “标题”=> “中OLD_NAME”}
但保存更改后:
a.save
a.changed_attributes
结果将为空哈希: {}