我正在一種形式的索引視圖中編輯父模型的多個實例,如在Railscasts#198中。 每個父的has_many:兒童和accepts_nested_attributes_for:兒童,在Railscasts#196和#197如何使用fields_for「parents []」獲得正確的兒童id,parent do | f |使用f.fields_for:孩子,孩子?
<%= form_tag %>
<% for parent in @parents %>
<%= fields_for "parents[]", parent do |f|
<%= f.text_field :job %>
<%= f.fields_for :children do |cf| %>
<% cf.text_field :chore %>
<% end %>
<% end %>
<% end %>
<% end %>
鑑於parent.id == 1
f.text_field:工作正確生成
<input id="parents_1_job" type="text" value="coding" size="30" name="parents[1][job]">
但cf.text_field:雜項生成沒有父索引的ID和名稱。
id="parents_children_attributes_0_chore"
name="parents[children_attributes][0][chore]"
如果我試圖通過具體的子對象f.fields_for這樣的:
<% for child in parent.children %>
<%= f.fields_for :children, child do |cf| %>
<%= cf.text_field :chore %>
<% end %>
<% end %>
我得到相同。如果我從改變方法:孩子「[]孩子們」我得
ID =「parents_1 ___ children_chore」
它得到正確的parent_index但不提供子指標的數組插槽。
「[]兒童[]」 是不正確的之一: ID = 「parents_1__children_3_chore」
我期待3_chore的attributes_0_chore代替。
我是否需要直接修改FormBuilder對象的屬性或FormBuilder的子類來使其工作,或者是否存在符合此情況的語法?
感謝您的任何想法。