Rails Guidesとこの Railscasts エピソードによると、2つのオブジェクト (例:と) の間に 1対多の関連付けがある場合、次のように during フォーム送信と一緒に の複数のインスタンスを送信できます。Project
Task
Task
Project
<% form_for :project, :url => projects_path do |f| %>
<p>
Name: <%= f.text_field :name %>
</p>
<% for task in @project.tasks %>
<% fields_for "project[task_attributes][]", task do |task_form| %>
<p>
Task Name: <%= task_form.text_field :name %>
Task Duration: <%= task_form.text_field :duration %>
</p>
<% end %>
<% end %>
<p><%= submit_tag "Create Project" %></p>
<% end %>
これにより、タスクごとに 1 つずつ、次のような HTML ブロックの複数のコピーがフォームに生成されます。
<p>
Task Name: <input name="project[task_attributes][name]">
Task Duration: <input name="project[task_attributes][duration]">
</p>
私の質問は、Rails がどのように理解するかです。
(project[task_attributes][name], project[task_attributes][duration])
一緒に属し、結果の配列のハッシュ要素にそれらをパッキングしparams
ますか? ブラウザがソースに表示されるのと同じ順序でフォーム パラメータを送信する必要があることは保証されていますか?