删除所有选中的项目 rails

Delete all checked items rails

我有数组任务[],其中包含表单

中的项目
<%= check_box_tag "tasks[]", task.id %>

我在控制台中看到它们

Processing by TasksController#destroy as HTML
  Parameters: {"utf8"=>"?", "authenticity_token"=>"qo6JqGn0a1Yck1j67taz7kEu/ENBrwLg0xs4HbmAehNq7yMVB3llJWYgZvRNrWKPrZqYJtZIaS89EIBFIyDZTA==", "tasks"=>["7", "8"], "commit"=>"Trash All Checked", "id"=>"delete_all"}

但是无法删除,操作无效

def delete_all
    Task.where(id: params[:id]).destroy_all
    redirect_to action: "index"
  end

您的 ID 出现在 params[:tasks] 中,所以您必须这样写:

def delete_all
  Task.where(id: params[:tasks]).destroy_all

  redirect_to action: "index"
end

无论如何,我建议在视图和控制器中将 tasks 更改为 tasks_ids。这是一个更有意义的名字。