0
我有has_many關聯模型的自定義驗證上下文。我相信我已經正確設置了驗證,但驗證不會失敗。以下是我的型號Rails 4 validates_associated on custom_context不會失敗,當它應該
class Report < ActiveRecord::Base
has_many :shifts
validates_associated :shifts, on: :submit
end
class Shift < ActiveRecord::Base
validates_presence_of :name
validates_presence_of :clock_in, on: :submit
end
r = Report.new
r.shifts << Shift.new(:name => "Nick")
r.valid?
=> true
r.valid?(:submit)
=> true #should be invalid since clock_in is blank still.
我的語法關閉了嗎?我錯過了什麼嗎?
在我的真實代碼中,我的確有accept_nested_attributes_for,但錯誤仍然存在,所以我拿出來讓問題更加「純」。在':submit'上下文中運行某些驗證是關鍵。要創建,更新報表應該允許在沒有提交上下文有效的情況下通過,但是當報表將被「提交」時,需要驗證所有字段。這種具有自定義上下文的功能將非常有用,但它似乎不像我期望的那樣行事。 – Nick