删除所有选中的项目

时间:2019-01-17 18:48:33

标签: ruby-on-rails arrays action checked

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

<%= 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

1 个答案:

答案 0 :(得分:2)

您的ID显示在length = 1 中,因此您必须编写如下代码:

params[:tasks]

无论如何,我建议在视图和控制器中将def delete_all Task.where(id: params[:tasks]).destroy_all redirect_to action: "index" end 更改为tasks。这个名字更有意义。