![](/img/trans.png)
[英]Rails, using collection model to update multiple records at once on a single form
[英]How to update multiple records of Rails forms at once?
我在索引頁面上有一個非常簡單的表,顯示我的“order_packages”表中的值。 我想讓每個表格行允許用戶更新每個訂單的“價格”字段的值。 在用戶完成輸入任意數量的價格后,我希望有 1 個提交按鈕可以一次更新所有訂單。 這是我現有的代碼:
<tbody>
<% @order_packages.each do |order| %>
<tr>
<td><%= order.id %></td>
<td><%= order.created_at.try(:strftime, '%b %e %y') %></td>
<td><%= order.package.name %></td>
<td><%= order.student.school.name %></td>
<%= simple_form_for(order) do |f| %>
<%= f.error_notification %>
<td><%= f.input :price, :label => false, :id => "price" %></td>
<td><%= f.button :submit, "Update Order" %></td>
<% end %>
<td><%= link_to 'Edit', edit_order_package_path(order) %></td>
</tr>
<% end %>
</tbody>
目前,每個單獨的訂單都有自己的提交按鈕,僅更新該訂單。 如何使用一個按鈕更新所有訂單? 非常感謝!
一種選擇是您可以在表單中多次使用相同的字段,這應該能夠將其作為字段數組發送。
<tbody>
<%= simple_form_for(order) do |f| %>
<% @order_packages.each do |order| %>
<tr>
<td><%= order.id %></td>
<td><%= order.created_at.try(:strftime, '%b %e %y') %></td>
<td><%= order.package.name %></td>
<td><%= order.student.school.name %></td>
<td><%= f.input :price, :label => false, :id => "price", multiple: true %></td>
<td><%= link_to 'Edit', edit_order_package_path(order) %></td>
</tr>
<% end %>
<%= f.button :submit, "Update Order" %>
<% end %>
</tbody>
注意 price 字段上的multiple: true參數,這是 simple_form 將輸入呈現為 html 數組輸入的方式。 此外,要呈現 activemodel 驗證錯誤,您需要根據您希望它的外觀做更多的工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.