批量剔除记录

批量删除记录

workhors/index.html.erb

 

<% @workhours.each do |workhour| %>
  <tr class="<%= cycle("odd","even") %>">
    <td><%= link_to format_id(workhour.id), workhour %></td>
    <td><%= check_box_tag "workhour_ids[]", workhour.id if can? :destroy, workhour %></td>
         ..................
 <% end %>

<%= form_tag destroy_multiple_workhours_path, :method => :delete, :id => 'multiple' do %>
  <div class='multiple'>
    <%= check_box_tag :check_all %>
    <%= label_tag :check_all, '选择所有' %> 
    <%= submit_tag "删除选中项" %> 
  </div>
<% end %>

 

worhours.js.coffee

 

jQuery ->
  $("#check_all").click(->
    $("input:checkbox").prop("checked", $(this).prop("checked"))
  )

  $('#multiple').submit(->
    $("input:checkbox", "table").each( ->
      $(this).clone().css("display", 'none').appendTo("#multiple")
    )
  )
 

routes.rb

 

  resources :workhours do
    collection do
      delete 'destroy_multiple'
    end
  end
 

workhours_controller.rb

 

  def destroy_multiple
    if params[:workhour_ids].blank?
      redirect_to :back, :alert => '请选择待删除项'
    else
      workhours = Workhour.find params[:workhour_ids]
      workhours.each do |w|
        w.destroy
      end
      redirect_to :back, :notice => I18n.t('flash.actions.destroy.notice')
    end
  rescue => e
    redirect_to :back, :alert => e.to_s
  end