2012-03-11 85 views
1

我有一個嵌套的形式,當形態沒有成功提交(用戶忘記必填字段),在重裝時,嵌套表格部分未完全一次施展......軌道嵌套形式的錯誤

什麼不顯示是嵌套部分的約束沒有得到滿足...

因此,有兩個嵌套窗體的第一天和最後一天的字段,不能空白以保存。

accepts_nested_attributes_for :onespecials, :reject_if => lambda { |a| a[:first_day].blank? || a[:last_day].blank? } 

然而,如果用戶沒有這些填寫,點擊提交,並打亂了上述主窗體上的一個字段,嵌套的部分不會再次顯示...如何任何幫助當需要重新加載因爲表單上的錯誤而顯示所有嵌套片段時?

+1

這可能與您的方式有關A)構建嵌套屬性和/或B)如何渲染窗體上現有的嵌套對象。您沒有將這些代碼顯示爲代碼片段,因此這很難診斷。 – coreyward 2012-03-11 01:03:01

+0

更新了代碼...有幫助嗎? – 2012-03-11 01:11:31

回答

0

corse嵌套表單將爲空白 - 您拒絕了它的參數::reject_if => lambda { |a| a[:first_day].blank? || a[:last_day].blank? }。這就是爲什麼你只是沒有f.object. onespecials。如果您想驗證one specials,請使用驗證方法或標準方法進行驗證。另一個詞只是刪除:reject_if,你將填寫表格填充字段。

+0

但我不希望空白字段被保存在數據庫中,如果他們沒有輸入任何東西,嵌套部分。 – 2012-03-11 01:28:47

+0

在'Onespecial'模型中爲字段使用'validates_presence_of' – ka8725 2012-03-11 10:35:39