在 Rails 5.1 之后,attribute_changed如何?"validate"回调?



在Rails 4.1中,当我的模型中的属性发生更改时,我曾调用一种验证方法

validate :my_attribute_is_valid, if: :my_attribute_changed?

对于Rails 5.1及以上版本(我使用的是6(,attribute_changed?已更改before_和after_回调(分别为saved_change_to_attribute?和will_save_change_to_attribute?(。更改"验证"方法检查的正确方法是什么?

正确的是:will_save_change_to_attribute?

验证在save回调之前运行,因此,您还不能检查saved_changes。可用的回调。

正如will_save_change_attribute的文档中所述:

下次保存时此属性会更改吗?此方法在验证和回调之前非常有用,以确定下一个要保存的调用是否会更改特定属性。它可以被调用为will_save_change_to_name?而不是will_save_change_attribute?("名称"(。

相关内容

  • 没有找到相关文章

最新更新