首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在Rails 6中选择多个要删除的项目(通过复选框)

在Rails 6中,可以通过使用复选框来选择多个要删除的项目。以下是一种实现方式:

  1. 首先,在你的视图文件中,创建一个表单来显示项目列表和复选框。可以使用form_with方法来创建表单,并使用collection_check_boxes方法来生成复选框。假设你的项目模型为Project,你可以在视图文件中添加以下代码:
代码语言:txt
复制
<%= form_with(model: @projects, local: true) do |form| %>
  <% @projects.each do |project| %>
    <%= form.collection_check_boxes :selected_project_ids, [project], :id, :name %>
  <% end %>
  <%= form.submit "删除选中的项目" %>
<% end %>

上述代码中,@projects是一个包含所有项目的实例变量,selected_project_ids是一个数组,用于存储用户选择的项目的ID。

  1. 在你的控制器中,处理表单提交的数据。在你的控制器的相应动作中,你可以使用params方法来获取用户选择的项目ID。然后,你可以使用destroy方法来删除这些项目。以下是一个示例:
代码语言:txt
复制
def destroy_selected_projects
  selected_project_ids = params[:project][:selected_project_ids]
  Project.destroy(selected_project_ids)
  redirect_to projects_path, notice: "选中的项目已成功删除。"
end

上述代码中,destroy_selected_projects是一个自定义的控制器动作,用于处理表单提交。params[:project][:selected_project_ids]用于获取用户选择的项目ID数组。然后,使用Project.destroy方法来删除这些项目。

  1. 在你的路由文件中,定义一个路由来映射到控制器的相应动作。在config/routes.rb文件中,添加以下代码:
代码语言:txt
复制
resources :projects do
  delete :destroy_selected, on: :collection
end

上述代码中,resources :projects用于定义项目资源的标准路由。delete :destroy_selected用于定义一个自定义的路由,映射到控制器的destroy_selected_projects动作。

现在,当用户提交表单时,选中的项目将被删除,并重定向到项目列表页面。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券