在大规模任务期间遇到强烈的障碍问题

时间:2016-07-15 22:02:46

标签: ruby-on-rails activerecord strong-parameters mass-assignment

我正在尝试使用一种形式更新多个记录:

以下是视图中的代码:

<%= form_for :product, :url => admin_products_update_multiple_path, :html => { :method => :put } do %>
  <table>
    <tr>
        <th>Supplier Name </th>
        <th>Product Name </th>
      <th>type_name</th>
      <th>brand</th>
      <th>image</th>
    </tr>
    <% @products.each do |product| %>
      <%= fields_for "product[]", product do |product_fields| %>
    <tr>
        <td><%= product.supplier_name %> </td>
        <td><%= product.subcategory_name %> </td>
      <td><%= product_fields.text_field :type_name %></td>
      <td><%= product_fields.text_field :brand %></td>
      <td><%= product_fields.text_field :image %></td>
    </tr>
      <% end %>
    <% end %>
  </table>

  <div class="actions">
    <%= submit_tag %>
  </div>
<% end %>

...这是我要求更新的控制器动作:

  def update_multiple 
      params['product'].keys.each do |id|
        @product = Product.find(id.to_i)
        @product.update_attributes(product_params)
      end
      flash[:notice] = "Update products successfully"
      redirect_to(admin_products_path)
  end

  private

  def product_params
    params.require(:product).permit(:id, :type_name, :brand, :image)
  end

当我运行该方法时,我收到一个'未允许的参数'错误,显示它正在尝试更新的所有ID。有任何想法吗?提前致谢!

0 个答案:

没有答案