1

我有一个表格,用于注册一个学生和 3 个紧急联系人。(emergency_contact 属于学生)。

所以,学生控制器...

def new
  @student = Student.new
   3.times {@student.emergency_contacts.build}
...

假设用户填写了学生信息,并且只有一个紧急联系人。由于任何原因验证失败(可能没有输入学生姓名),当重新显示表单时,输入第二个或第三个额外紧急联系人的字段消失了

当然,如果我3.times {@member.caregivers.build}在创建操作中也这样做,每次验证失败时我都会得到越来越多的附加字段。

那么,即使在验证失败后,如何始终在表单中保留指定数量的嵌套模型?

4

1 回答 1

1

在您的创建操作中,您可以执行以下操作:

if @student.save
  ...
else
 (3 - @student.emergency_contacts.size).times { @student.emergency_contacts.build }
end

希望能帮助到你。

于 2012-09-13T19:32:00.770 回答