在行动中接收所有选中复选框的对象,rails 3.2.8

时间:2012-10-03 19:34:39

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-3.2

我正在制作系统私信。

我希望通过选中复选框捕获所有对象,如果用户单击垃圾箱,发送到垃圾箱操作,如果点击垃圾邮件,则发送到垃圾邮件控制器内的垃圾邮件操作。你可以看到下一张图片:

enter image description here

这是我的复选框html:

<input class="check" id="506c82001d41c82198000056" name="506c82001d41c82198000056" type="checkbox" value="506c82001d41c82198000056">

生成时:

<%= check_box_tag m.id, m.id, false, :class => "check" %>

删除和垃圾邮件按钮是格式为的链接:

<%= link_to "Delete", delete_message_path %>
<%= link_to "Spam", spam_message_path %>

如何将已使用复选框checkeck标记的结果发送到每个操作?

非常感谢!

1 个答案:

答案 0 :(得分:1)

如果您想要一个纯html实现,您可以将表单路由到单个控制器操作,并从那里处理删除和垃圾邮件逻辑或重定向到这些操作。

以您的形式

<%= form_tag('/messages_cleanup', method: :put) %>
  <%= submit_tag "Delete" %>
  <%= submit_tag "Spam" %>

  <%= message.each do |m| %>
    <%= check_box_tag m.id, m.id, false, :class => "check" %>
  <% end %>
<% end %>

您可以有两个提交标记,这些标记会显示一些网址,例如/messages_cleanup,其路线如match /messages_cleanup, :to => 'messages#cleanup'

然后在您的消息控制器中,您可以在params[:commit]字段中检查提交类型。

def cleanup
  case params[:commit]
    when "Delete"
      # either handle delete logic here or redirect to delete path
    when "Spam"
      # either handle spam logic here or redirect to spam path
  end
end