在控制台中使用自动完成功能时,我经常会看到“ _was
”被附加到我的属性中。但我找不到任何文档或最佳使用实践。它有什么作用以及应该如何使用?
例子:user.fname
有方法user.fname_was
使用 source_location,我将其追踪到:active_model/attribute_methods.rb",第 296 行,但没有任何具体内容。
在控制台中使用自动完成功能时,我经常会看到“ _was
”被附加到我的属性中。但我找不到任何文档或最佳使用实践。它有什么作用以及应该如何使用?
例子:user.fname
有方法user.fname_was
使用 source_location,我将其追踪到:active_model/attribute_methods.rb",第 296 行,但没有任何具体内容。
这是 ActiveModel::Dirty 的一部分你可以在这里看到它https://github.com/rails/rails/blob/af64ac4e5ce8406137d5520fa88e8f652ab703e9/activemodel/lib/active_model/dirty.rb#L146 示例
person = Person.find_by_name('Uncle Bob')
person.changed? # => false
更改名称:
person.name = 'Bob'
person.changed? # => true
person.name_changed? # => true
#method _was return prev attribute value
person.name_was # => 'Uncle Bob'
person.name_change # => ['Uncle Bob', 'Bob']
person.name = 'Bill'
person.name_change # => ['Uncle Bob', 'Bill']