簡體   English   中英

如何一次更新Rails forms的多條記錄?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM