1
所以我有一個典型的Rails模型accepts_nested_attributes_for
與存在驗證Rails的accepts_nested_attributes_for與_destroy可以跳過存在驗證
(片段)
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)並保存它時,它會刪除封面,但已經通過了有關存在的驗證。
我認爲,事情的經過是:
- 標記破壞蓋
- 驗證過程中發生的(認爲還有包括(但也許不承認銷燬))
- 有效,去拯救
- 節省書和
- 通過
沒有再次驗證有關無覆蓋
我是否做得不正確?有沒有另外一種方法來實現這一點?或者,我如何重新驗證這種情況(例如,在發生保存和銷燬之後,會有另一個驗證說現在的對象現在是無效的)?