4
class Parent
has_one :child
accepts_nested_attributes_for :child
end
class Child
belongs_to :parent
end
使用嵌套對象表單時,我需要爲子模型添加一些額外的驗證。這些並不總是在Child上運行,所以我不能將它們放在Child中的validate
方法中。在Parent中驗證方法中檢查似乎是明智的,但我無法正確添加錯誤消息。嵌套模型上的自定義驗證錯誤
這並不工作:
class Parent
...
def validate
errors[ :"child.fieldname" ] = "Don't be blank!"
end
但是我們失去了美好的東西像I18N和CSS上的錯誤領域突出。
這不起作用:
def validate
errors.add :"child.fieldname", :blank
end
我最初的想法是始終有子模型的孩子驗證。爲什麼不這樣做? – 2011-03-17 18:45:56
針對不同情況的不同驗證。在我的具體情況下,一些兒童模型是在沒有父母的情況下創建的,而且那些模型比通過父母創建的模型更加寬鬆。 – 2011-03-17 18:58:32
因此,讓他們有條件的父母的存在。你仍然應該把它們放在孩子模型中。 – 2011-03-17 19:45:38