我有一个表格,我注册了学生和3个紧急联系人。 (emergency_contact属于学生)。
所以,StudentsController ......
def new
@student = Student.new
3.times {@student.emergency_contacts.build}
...
因此,让我们说,用户填写了学生信息,只有一个紧急联系人。验证因任何原因(可能未输入学生姓名)而失败,当表格重新显示时,输入第二个或第三个其他紧急联系人的字段将消失。
当然,如果我也在创建操作中执行此3.times {@member.caregivers.build}
,那么每次验证失败时我都会获得越来越多的附加字段。
那么,即使验证失败,我怎样才能始终在表单中保留指定数量的嵌套模型?
答案 0 :(得分:1)
在您的创建操作中,您可以执行以下操作:
if @student.save
...
else
(3 - @student.emergency_contacts.size).times { @student.emergency_contacts.build }
end
希望它有所帮助。