ruby-on-rails 用一个表单更新多个记录

kdfy810k  于 2023-08-08  发布在  Ruby
关注(0)|答案(1)|浏览(127)

我想知道如何单独更新多个记录。
说我有一个产品模型。它有价格和属性名称,我只想更新某些属性
控制器

class ProductController
  def index
    @products = Products.where(store: store_id)
  end

  def update
     product = Product.find_by(id: params[what goes here]
     product.update(params[how do i find it])
  end
end

字符串
在索引视图中,

Tissue
  <%= form_for @products, url: products_update_path(how do i target the id) do |f| %>
    <%= f.text_area :price, :class => "admin_editor" %>
  <% end %>

  Chair
  <%= form_for @products, url: products_update_path(how do i target the id) do |f| %>
    <%= f.text_area :price, :class => "admin_editor" %>
  <% end %>


才是正确的方式但我觉得这种方法是混乱的,如果我有很多不同的产品

def index
    @tissue = Product.where(store_id: store_id, name: 'tissue')
    @chair = Product.where(store_id: store_id, name: 'chair')
  end

  def update
     product = Product.find_by(id: params[product_id]
     product.update(params[how do i find it])
  end


在我看来

Chair
  <%= form_for @tissue, url: products_update_path(product_id: @tissue.id) do |f| %>
    <%= f.text_area :price,%>
  <% end %>

  Tissue
  <%= form_for @chair, url: products_update_path(product_id: @chair.id) do |f| %>
    <%= f.text_area :price %>
  <% end %>


或者,有没有一种方法可以在一个单一的表单中完成它?

相关问题