0

我正在发送系统私人消息。

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

在此处输入图像描述

这是我的复选框 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 %>

如何将标有复选框检查的结果发送到每个操作?

非常感谢你!

4

1 回答 1

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 %>

你可以有两个提交标签,它们指向某个 url,比如/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
于 2012-10-03T20:10:36.237 回答