1

学生と 3 つの緊急連絡先を登録するフォームがあります。(emergency_contact は学生に属します)。

それで、StudentController...

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

たとえば、ユーザーが学生情報と 1 つの緊急連絡先のみを入力したとします。なんらかの理由で検証が失敗し (学生の名前が入力されていない可能性があります)、フォームが再表示されると、2 つ目または 3 つ目の追加の緊急連絡先を入力するフィールドがなくなります。

もちろん、3.times {@member.caregivers.build}作成アクションでもこれを行うと、検証が失敗するたびに追加のフィールドがどんどん取得されます。

では、検証が失敗した後でも、指定された数のネストされたモデルを常にフォームに保持するにはどうすればよいでしょうか?

4

1 に答える 1

1

create アクションでは、次のことができます。

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

それが役に立てば幸い。

于 2012-09-13T19:32:00.770 に答える