我此行controller/new
多個記錄的形成:形式的多個目標 - 捕捉只有最後一條記錄
@students = Array.new(quantity) {@stream.students.build}
查看文件:
<%= @errors.inspect %>
<%= form_for :students_list, {:url => create_students_list_stream_url(@stream) } do |students_list_form| %>
<% i=0 %>
<% @students.each do |student| %>
<% i=i+1 %>
<%= students_list_form.fields_for student do |student_form|%>
<%= render :partial => "students/add_students_to_stream", locals: {:student=>student, :student_form=>student_form, :i=>i} %>
<% end %>
<% end %>
<%= students_list_form.submit "Добавить студентов" %>
<% end %>
這會產生期待,而正確的HTML,一個輸入:
<input id="name-field-1" type="text" name="students_list[student][account_attributes][name]" />
...
請注意,它可以是每個頁面多個對象,比如這個輸入,就像I wan t創建記錄列表。
但是,從我的服務器日誌中可以看到,Rails獲取的參數僅包含最後一條記錄。
例如,我在頁面上有兩個「學生」的表單。
<input id="name-field-1" type="text" name="student[student][account_attributes][name]" />
<input id="name-field-2" type="text" name="student[student][account_attributes][name]" />
輸入有名字約翰和彼得,我的服務器日誌將表明:
"students_list"=>{"student"=>{"account_attributes"=>{"name"=>"Peter"}}}
和完蛋了。