如何使用 check_box_tag 和 link_to 删除多条记录 - Rails4

How to delete multiple records using check_box_tag and link_to - Rails4

在我的路线中我有

delete 'boshu_hombu/delete_data', :as => :delete_data

在我的控制器中,删除方法

def delete_data
  if params[:boshus]
    BoshuHombu.where(id: params[:boshus]).destroy_all
  end  
  redirect_to edit_all_path
end

在我看来,我正在使用复选框选择要删除的多条记录,我有一个按钮可以调用删除操作

<%= link_to '削除',  { action: :delete_data}, method: :delete,
 data: { confirm: 'Are you sure?' }, :class => 'btn btn-danger' %>
<% @get_boshu_data.each do |user| %>
  <tr>
    <td><%= check_box_tag "boshus[]", user.id %></td>
    <td><%= user.id %></td>
    <td><%= user.kyujin_site %></td>
  <tr/>
<% end %>

但是如何在我的控制器的 delete_data 操作中获取选定的值。怎么办?谢谢

试试这个:

<%= link_to '削除',  { action: :delete_data}, method: :delete,
 data: { confirm: 'Are you sure?' }, :class => 'btn btn-danger', id:'delete' %>
<% @get_boshu_data.each do |user| %>
  <tr>
    <td><%= check_box_tag "boshus[]", user.id, false, class: 'check' %></td>
    <td><%= user.id %></td>
    <td><%= user.kyujin_site %></td>
  <tr/>
<% end %>

<script>
$(document).ready(function(){
 var href = $('#delete').attr('href')

 $('#delete').on('click',function(){
   var newHref = href + '?'
   $('.check').each(function(){
    if ($(this).prop('checked') == true) newHref+='boshus%5B%5D='+$(this).val()+'&'
   });
   $('#delete').attr('href',newHref)

 });

});
</script>