プログラミング的なSomething

プログラミング的なSomething

ITエンジニア(?)目線で生活・自転車・トレーニング話を綴ります

Railsでチェックボックスを作る手順

チェックボックスを作りたい。調べてみると少し複雑な様子。持っている書籍にも詳しくは書かれていなかったので調べてみました。チェックした項目が複数だった場合にはそれがわかるよう、例えば配列なりハッシュで返してくれるよう作ります。今回はハッシュで作りました。
早速ビュー画面のサンプルです。hidden_field_tagが最初にくるようにしてください。

<%= hidden_field_tag 'kind[][id]','1' %>
<%= check_box_tag 'kind[][flag]','朝御飯' %>
<%= hidden_field_tag 'kind[][id]','2' %>
<%= check_box_tag 'kind[][flag]','昼御飯' %>
<%= hidden_field_tag 'kind[][id]','3' %>
<%= check_box_tag 'kind[][flag]','夕御飯' %>

すると、kindはパラメータで以下のように処理されます。

〜〜"kind"=>[{"id"=>"1"}, {"id"=>"2", "flag"=>"昼御飯"}, {"id"=>"3", "flag"=>"夕御飯"}]

あとはパラメータを取得すれば選択した内容を処理できます。コントローラで書けばいいですね。

@kind = params[:kind]

実際の処理結果はこんな感じ。昼御飯と夕御飯をチェックしています。

puts @kind

#=> {"id"=>"1"}
#=> {"id"=>"2", "flag"=>"昼御飯"}
#=> {"id"=>"3", "flag"=>"夕御飯"}

もっといい方法がありそうですが、ひとまずこの実装でチェックボックスは利用することにします。