2013-02-06 67 views
0

我正在使用RoR 3,form_tag,checkbox_tag和submit_tag將ID集合提交給我的控制器。複選框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 

然而,這些複選框是否選擇永遠不會被傳遞到我的控制器。在我的日誌中,這些參數完全丟失,即使這個控制器方法確實被調用。這裏的日誌:

開始POST 「/消息/ inbox_action /提交名稱= mailgrid?」 爲127.0.0.1,在2013年2月5日19時43分02秒-0800

處理由MessagesController#inbox_action作爲HTML

參數:{「utf8」=>「✓」,「authenticity_token」=>「asdf」,「commit」=>「delete」,「name」=>「mailgrid」,「id」=> 「submit」}

關於我做錯了什麼想法?

+0

你結束與''<% end %>表單? – sevaor

+0

http://guides.rubyonrails.org/form_helpers.html 我認爲你應該使用「form_for」爲你的模型CRUD – kukrt

+0

這不是特別綁定到模型動作,所以我想使用form_tag,因爲它更通用。 是的,我以'<% end %>'結尾。我會更新帖子。 – Tripp

回答

0

什麼,如果你嘗試用

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

我在紅寶石新手,但似乎這就是問題,我可能是錯的,但

+0

不,不管我在check_box_tag中放什麼東西,都不會傳遞給控制器​​。 – Tripp