Rails对列表中的选定项目采取行动 - 最佳方式

时间:2011-06-24 19:39:32

标签: html ruby-on-rails forms checkbox action

我有一个收件箱电子邮件表。 每行都有一个删除按钮: <%= link_to'删除',电子邮件,:method => :delete,:confirm => “你确定要删除这封电子邮件吗?” %GT;

注意:此处的电子邮件是传递给页面的电子邮件对象。

现在。我希望每行都有一个复选框,底部有一个常见的删除按钮。我把每行的复选框放在: <%= check_box_tag('email',email)%>

我不知道如何在底部执行常见的删除按钮。

由于

1 个答案:

答案 0 :(得分:1)

只需将其包装在一个表单中(例如multi_delete),处理传递给操作的已检查电子邮件ID。

您需要对此进行修改,但通常是:

#multi_delete action to be defined in config/routes.rb

#in your view
= form_tag(:action => :multi_delete) do
  - @emails.each do |email|
    = check_box_tag('emails[]', email.id)
  = submit_tag('Delete', :confirm => "Go for it?")

#in your controller
def multi_delete
  Email.destroy_all("id IN ?", params[:emails])
  redirect_to :action => "index"
end