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