Leo*_*sov 95 activerecord ruby-on-rails
有没有办法获得ActiveRecord属性的原始值(=从数据库加载的值)?
在观察者中我想要这样的东西
before_save object
do_something_with object.original_name
end
Run Code Online (Sandbox Code Playgroud)
任务是在更新时从哈希表中删除对象(事实上,将其移动到表中的另一个键).
Vin*_*ent 240
附加_was
到您的属性将为您提供以前的值.
_was
在rails 5.1中不推荐使用追加,现在你应该追加_before_last_save
就像是:
before_save object
do_something_with object.name_before_last_save
end
Run Code Online (Sandbox Code Playgroud)
会前最后一次保存在数据库(作品保存和创造)返回名称值
之间的差额_was
,并_before_last_save
根据文档:
_ 来自docs的来源
def attribute_was(attr)
attribute_changed?(attr) ? changed_attributes[attr] : __send__(attr)
end
Run Code Online (Sandbox Code Playgroud)
来自docs的_before_last_save来源
def attribute_before_last_save(attr_name)
mutations_before_last_save.original_value(attr_name)
end
Run Code Online (Sandbox Code Playgroud)
你可以在这里看到一个更好的例子
归档时间: |
|
查看次数: |
31084 次 |
最近记录: |