0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Rails6で複数チェックボックスを使う!

Last updated at Posted at 2020-09-04

オリジナルアプリのユーザー登録機能実装中複数チェックボックスを使いました!
初心者のため備忘録として初投稿します!
間違えていたらコメントで指摘をお願いします笑

チェックボックスの書き方

チェックボックスといっても書き方は色々あります。 今回は関連するモデルがあるので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

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?