私はRoR 3をform_tag、checkbox_tag、およびsubmit_tagとともに使用して、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"}
私が間違ったことについてのアイデアはありますか?