在 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?)。更改“驗證”方法檢查的正確方法是什么?
uj5u.com熱心網友回復:
正確的應該是: will_save_change_to_attribute?
驗證在save回呼之前運行,因此,您現在還不能檢查saved_changes。可用回呼。
正如will_save_change_to_attribute的檔案中所述?:
下次保存時這個屬性會改變嗎?此方法在驗證和回呼之前很有用,以確定下一次呼叫 save 是否會更改特定屬性。它可以作為 will_save_change_to_name 呼叫嗎?而不是 will_save_change_to_attribute?(“名稱”)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/389857.html
標籤:红宝石轨道 验证 打回来 ruby-on-rails-6
上一篇:Laravel影像驗證
下一篇:如何驗證或限制用戶輸入字母或數字
