0
在單個頁面上,我可能會有一個視頻,然後在複選框中添加多個狗。很容易(如下)...Rails:has_many:通過_ids嵌套?
查看:
<%= check_box_tag "video[dog_ids][]", dog.id %>
控制器:
params[:video][:dog_ids] ||= []
但我無法弄清楚如何做的是有多個視頻,每個與多隻狗。
目前,我有這樣的:
<% @videos.each do |video| %>
<%= fields_for "item[]", video do |f| %>
<%= f.hidden_field :id, :index => nil %>
<%= f.text_field :title, :index => nil%>
<%= f.text_area :body, :index => nil %>
<% video.dogs.each do |dog| %>
<%= check_box_tag "item[][video[dog_ids][]]", dog.id %>
<% end %>
<% end %>
<% end %>
但是,當我做到這一點,當它提交dogs_ids
總是nil
。
任何想法我做錯了什麼?
的'fields_for'具有留(由於在表格中的字段的其餘部分)。 – Shpigford 2011-05-05 18:20:03
但在你的例子中,你實際上並不像'<= = check_box_tag ...'那樣使用'fields_for',而不是'<%= f.check_box ...'。 – Laas 2011-05-05 18:42:10
我的觀點是,你必須在複選框名稱中指定視頻ID並使用當前的代碼示例,'item []'部分是不必要的。儘管如此,我更新了我的代碼以反映您的示例。 – Laas 2011-05-05 18:50:53