Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 轨道3。验证失败时,保留表单中嵌套字段的数量_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails 轨道3。验证失败时,保留表单中嵌套字段的数量

Ruby on rails 轨道3。验证失败时,保留表单中嵌套字段的数量,ruby-on-rails,ruby,Ruby On Rails,Ruby,我有一张表格,上面有一个学生和3个紧急联系人。(紧急联系人属于学生) 所以,学生控制员 def new @student = Student.new 3.times {@student.emergency_contacts.build} ... 比如说,用户填写了学生信息,只有一个紧急联系人。由于任何原因(可能没有输入学生姓名),当表单重新显示时,输入第二个或第三个额外紧急联系人的字段将消失 当然,如果我在创建操作中也这样做3.times{@member.carriers.build

我有一张表格,上面有一个学生和3个紧急联系人。(紧急联系人属于学生)

所以,学生控制员

def new
  @student = Student.new
   3.times {@student.emergency_contacts.build}
...
比如说,用户填写了学生信息,只有一个紧急联系人。由于任何原因(可能没有输入学生姓名),当表单重新显示时,输入第二个或第三个额外紧急联系人的字段将消失

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


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

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

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

希望有帮助。

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

if @student.save
  ...
else
 (3 - @student.emergency_contacts.size).times { @student.emergency_contacts.build }
end
希望能有帮助