按照Rails Guides和this Railscasts插曲,當有兩個對象(如Project
和Task
)之間的一個一對多協會,我們可以一起Project
類似這樣的表單提交期間提交的Task
多個實例:Rails在表單提交過程中如何將散列數組分組?
<% 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 %>
這將導致這樣的一個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
所得陣列的哈希元素?是否保證瀏覽器必須按照它們出現在源代碼中的相同順序發送表單參數?
呃!剛剛找到答案[這裏](http://stackoverflow.com/questions/3300201/does-dom-order-determine-the-order-of-form-parameters-posted)。 顯然這是標準要求的。 – 2012-04-29 14:40:30