オリジナルアプリのユーザー登録機能実装中複数チェックボックスを使いました!
初心者のため備忘録として初投稿します!
間違えていたらコメントで指摘をお願いします笑
チェックボックスの書き方
チェックボックスといっても書き方は色々あります。 今回は関連するモデルがあるのでcheck_boxメソッドを使いました。 <%= f.check_box :food, {multiple: true}, food, nil %>
こんな感じです。
foodの部分はそれぞれ指定したいオブジェクト名を入れてください。
ちなみにカラムの型はtext型で指定しています。
複数選択を可能にする為に、{multiple: true}を書きます。
キーのパラメーターを許可する
今回のアプリ製作ではユーザー登録にdeviseを使用しているので、application_controller.rbにのprivateメソッド内にチェックボックスのパラメーターを許可する為の記述をします。 def configure_permitted_parameters
devise_parameter_sanitizer.permit(:sign_up, keys: [:nickname, food:[]])
end
[ ]を忘れないように。
form画面の書き方
こんな感じです。
<div class="field">
<% %w(ステーキ ハンバーグ 寿司 オムライス).each.with_index do |food,i| %>
<label>
<%= f.check_box :food, {multiple: true}, food, nil %>
<%= food %>
</label>
<% end %>
</div>
チェックボックスの項目は%記法を使い配列の中に入れてあげます。
そしてそれをeach.with_indexを使い、配列の要素を変数foodに格納して番号も振っています。
lebelタグでフォームの項目の関連付けをすることを忘れないように
以上です!!
formは難しいですね笑
初心者なので書き方がわからず、理解できないところもありましたが、使えるようになると便利だとおもいます!
間違えやもっといい書き方がありましたら教えていただけると幸いです!
他のサイトを参考に見よう見まねでやりましたが実装はうまくできたと思います!
参考にしたサイトはこちらです!⇓⇓
https://www.sejuku.net/blog/27132