Answers:
附加_was
到属性将为您提供先前的值。
摘录自卢卡斯·安德拉德(Lucas Andrade)的以下回答:https : //stackoverflow.com/a/50973808/9359123
_was
在Rails 5.1中不推荐使用追加,现在您应该追加_before_last_save
就像是:
before_save object
do_something_with object.name_before_last_save
end
将在您上次保存数据库之前返回名称值(适用于保存和创建)
,_was
并且_before_last_save
根据文档之间的区别:
_was源从文档
def attribute_was(attr)
attribute_changed?(attr) ? changed_attributes[attr] : __send__(attr)
end
_before_last_save 来自文档的来源
def attribute_before_last_save(attr_name)
mutations_before_last_save.original_value(attr_name)
end
_was
。
_was
在Rails 5.1中不推荐使用追加,现在您应该追加_before_last_save
就像是:
before_save object
do_something_with object.name_before_last_save
end
将在您上次保存数据库之前返回名称值(适用于保存和创建)
,_was
并且_before_last_save
根据文档之间的区别:
_was源从文档
def attribute_was(attr)
attribute_changed?(attr) ? changed_attributes[attr] : __send__(attr)
end
_before_last_save 来自文档的来源
def attribute_before_last_save(attr_name)
mutations_before_last_save.original_value(attr_name)
end
您可以在这里看到一个更好的例子
attribute_was
不推荐使用attribute_in_database
,而推荐使用,而attribute_before_last_save
从5.1开始,这是一种全新的方法,在早期版本的Rails中没有等效方法。来源:github.com/rails/rails/pull/25337#issuecomment-225166796
ActiveRecord的attributes_before_type_cast
方法在进行类型转换和反序列化之前返回属性的哈希。
self.context
:self.context_was