[英]Rails - accepts_nested_attributes_for and presence validation
[英]Rails accepts_nested_attributes_for with _destroy can skip presence validation
所以我有一個帶有accepts_nested_attributes_for
的典型Rails模型,並且具有在線狀態驗證功能
(片段)
class Book < ActiveRecord::Base
...
has_one :cover
accepts_nested_attributes_for :cover, allow_destroy: true
validate :require_cover
def require_cover
errors.add('', 'You must have a cover for the book.') if self.cover.blank?
end
...
end
當我創建時,這可以正常工作並驗證第一步。 但是,當我嘗試對其進行編輯並單擊封面上的“刪除”(單擊“刪除”添加_destroy
true)並保存時,它刪除了封面,但是有關狀態的驗證已經通過。
我認為發生了什么事:
再次確認無封面
我做錯了嗎? 還有另一種方法可以實現嗎? 還是我如何重新驗證這種情況(例如,在發生保存和銷毀之后,將再次進行驗證以表明結果對象現在無效)?
我找到了解決問題的方法,很正確,保存沒有考慮那些標記為_destroy的對象。
此鏈接可以更好地描述問題,並且也可以找到答案。 http://homeonrails.com/2012/10/validating-nested-associations-in-rails/
基本上,他拒絕了那些標有要銷毀的物品,並計算了剩余的物品。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.