我正在制作系统私信。
我希望通过选中复选框捕获所有对象,如果用户单击垃圾箱,发送到垃圾箱操作,如果点击垃圾邮件,则发送到垃圾邮件控制器内的垃圾邮件操作。你可以看到下一张图片:
这是我的复选框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标记的结果发送到每个操作?
非常感谢!
答案 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