我是一個rails noobie,我試圖理清拒絕基於空屬性的實例和創建一個檢查屬性存在的驗證之間的區別。嵌套屬性:如果您使用reject_if,爲什麼要驗證嵌套模型?
學生有很多考試。考試的關鍵屬性是分數。沒有這個,考試不應該被接受到數據庫中。
我的考試模式有以下行:
validates :score, presence: true
我的學生模型具有這樣的:
accepts_nested_attributes_for :exams,
:reject_if => proc { |exam| exam['score'].blank? }
看來,第二個例子中悄然「拒絕」被輸入到數據庫中考而第一個示例則吐出一條錯誤消息,並要求您再試一次。
但是真的,這裏有什麼區別......它似乎最終阻止了一個實例被輸入到數據庫中 - 我是否從包含這兩行中受益?