2012-03-11 84 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