0
所以我有一個實體形式接受另一個實體的嵌套屬性。這呈現完美。但是,嵌套窗體不能正常工作,因爲我喜歡它。請看下圖:接受嵌套屬性不按預期工作
<table class="datagrid">
<thead class="datagrid">
<th width="300" align="left"> Item</th>
<% unless current_user.is_partner? %>
<th width="100"> Location</th>
<% end %>
<th> Amount Requested</th>
<th> Amount Checked Out</th>
</thead>
<% session[:clicked_request].items.each do |item| %>
<tr class="<%= cycle('dg_list_line_odd', 'dg_list_line_even') %>">
<td> <%= link_to "#{item.name}", item_path(item) %></td>
<% unless current_user.is_partner? %>
<td> <%= item.location.name %></td>
<% end %>
<td> <%= item.requested %></td>
<td><%= f.text_field :amount, :value => item.requested, :size => 1 %></td>
</tr>
<% end %>
</table>
<p> </p>
正如你可以看到有一個「每個」循環這裏,允許顯示,並希望創立,多個項目。然而,當我按下提交按鈕時,不管有多少項目,只有其中一個被創建。
您的建議非常感謝。
你幾乎正確地期待'accept_nested_attributes'使用'_attributes'來查看writer屬性,所以上面的表單必須構建一個hash,它有一個名爲'items_attributes'的鍵,它需要爲上面的表單設置'name'明確因爲我猜在上面的情況下,它創建了'items'的散列。你可以在'http:// api.rubyonrails.org/classes/ActiveRecord/NestedAttributes/ClassMethods.html'中檢查相同的結果 – Viren
如果你做得對,fields_for會爲你設置名字 –
糟糕,我寫過form_for而不是字段 –