0

我正在使用带有 form_tag、checkbox_tag 和 submit_tag 的 RoR 3 将一组 id 提交给我的控制器。

我有一个消息表,我希望有复选框,允许我选择和对提交的那些项目采取行动。在我看来:

<%= form_tag :name => "mailgrid",:id=>"submit",:action => "inbox_action" do  %>
...
<td class="mailbox_from"><%= check_box_tag 'msg_ids[]', message.id %></td>
...
<%= submit_tag "delete", :name => 'commit', :value=>'delete' %>
<% end %>

这会生成如下所示的 HTML:

<form accept-charset="UTF-8" action="/messages/inbox_action/submit?name=mailgrid" method="post">
...
<input id="msg_ids_" name="msg_ids[]" style="position:relative;top:-2px;right:10px;" type="checkbox" value="88" />
...
<input name="commit" type="submit" value="delete" /> </div>

然后,在我的控制器中:

  if params[:msg_ids]
      #dostuff
  end

但是,这些复选框是否被选中永远不会传递给我的控制器。在我的日志中,这些参数完全丢失了,即使这个控制器方法确实被调用了。这是日志:

在 2013-02-05 19:43:02 -0800 为 127.0.0.1 开始 POST "/messages/inbox_action/submit?name=mailgrid"

MessagesController#inbox_action 处理为 HTML

参数:{"utf8"=>"✓", "authenticity_token"=>"asdf", "commit"=>"delete", "name"=>"mailgrid", "id"=>"submit"}

关于我做错了什么有什么想法吗?

4

1 回答 1

0

如果你尝试

<%= check_box_tag......., params[:your_param], ..... %>

我是红宝石的新手,但似乎这就是问题所在,我可能是错的,但是

于 2013-02-06T04:32:01.280 回答