
By: Luca Masters – CC BY 2.0
問題
チェックボックスで複数選択可のフォームでうまくparamsにはいらない
例1
1 | <%= check_box_tag 'candidate', candidate.id %> |
この場合、複数選択しても、最後に選択した値しか入ってこない.
1 | {"utf8"=>"✓", "authenticity_token"=>"", "candidate"=>"3", "commit"=>"追加", "controller"=>"jp_people", "action"=>"add_people", "project_id"=>"2"} |
例2
1 | <%= check_box_tag candidate.id %> |
1 | {"utf8"=>"✓", "authenticity_token"=>"", "2"=>"1", "3"=>"1", "commit"=>"追加", "controller"=>"jp_people", "action"=>"add_people", "project_id"=>"2"} |
アンサー
ここを参考に. name属性を命名規則に従って自分で指定する.
1 | <%= check_box_tag 'candidate[id][]', candidate.id %> |
これで、params[:candidate][:id]で選択したidの配列が取得できる.
1 | {"utf8"=>"✓", "authenticity_token"=>"", "candidate"=>{"id"=>["2", "3"]}, "commit"=>"追加", "controller"=>"jp_people", "action"=>"add_people", "project_id"=>"2"} |