0

我正在开发一个需要实施产品管理的 Rails 应用程序。
管理界面应该允许向系统添加新产品。
该索引显示现有产品的列表,并应允许对现有模型进行批量编辑(更改多个产品名称,通过复选框删除多个产品等)。

问题
我试图弄清楚如何使索引页面表现得像一个表单。目前,我实现了使用复选框删除多个产品的功能:

  • index.html.erb

    # The form_tag wraps the entire collection, with a path to delete multiple  
    # products defined in the controller/routes
    <%= form_tag destroy_multiple_admin_products_path, method: :delete do %>  
    
      # render the products collection:
      <% @products.each do |product| %>  
        # checkbox to mark product for deletion:
        <%= check_box_tag "products[]", product.id %>
        # content
        <%= text_field_tag "", product.name %>
        ...
    
  • products_controller.rb

    # admin/products#index
    def index
      @products = Product.all
    end
    # admin/products#destroy_multiple
    def destroy_multiple
      Product.destroy(params[:products])
      redirect_to admin_products_path
    end
    
  • 路线.rb

    root :to => 'high_voltage/pages#show', id: 'home'
    
    namespace :admin do
      resources :products, only: [:new, :edit, :update, :create, :index] do
        collection do
          delete 'destroy_multiple'
        end
      end
    end
    

如上图,视图中的form_tag是用delete_multiple路径设置的。
当按下提交按钮时,所有选定的产品都将被删除。
问题是,我对如何实现“更新所选”按钮一无所知,该按钮将使用各个字段中的值更新所选产品(为简洁起见,其中大部分已被编辑)。

4

0 回答 0