我需要使用form_tag
幫助器將表格中的對象作爲collection_select
的對象參數,但我的params散列格式不正確。Rails:使用數組中的對象作爲collection_select的對象參數
例子:
<%= form_tag(picks_path, method: :post) do %>
<% @awards.each do |award| %>
<%= hidden_field_tag "picks[][user_id]", 1 %>
<%= hidden_field_tag "picks[][game_id]", 1 %>
<%= hidden_field_tag "picks[][award_id]", award.id %>
<%= label_tag "picks[][:first_pick]", "First Pick" %>
<%= collection_select("picks[][:first_pick]",
:first_pick, award.nominations, :id, :nominee) %>
<% end %>
<%= submit_tag 'Submit' %>
<% end %>
結果在這個PARAMS額外嵌套哈希...
"picks"=>[{"user_id"=>"1", "game_id"=>"1", "award_id"=>"1", ":first_pick"=>{"first_pick"=>"1"}}, {"user_id"=>"1", "game_id"=>"1", "award_id"=>"2", ":first_pick"=>{"first_pick"=>"3"}}]
當我真正喜歡的是這個...
"picks"=>[{"user_id"=>"1", "game_id"=>"1", "award_id"=>"1", "first_pick"=>"1"}, {"user_id"=>"1", "game_id"=>"1", "award_id"=>"2", "first_pick"=>"3"}]
我試着用這個...
<%= collection_select("picks[]", :first_pick, award.nominations, :id, :nominee) %>
但我得到這個例外...
對象[]命名,但對象PARAM和@object VAR不存在或不 迴應到to_param:無
上午我在這裏缺少一些特殊的語法,或者這不是通過一個提交按鈕從表單中實現多個條目的傳統方式嗎?