teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

collection_check_boxes のサンプルコードを追加

2020/01/08 06:33

投稿

shinoharat
shinoharat

スコア1685

answer CHANGED
@@ -3,11 +3,19 @@
3
3
 
4
4
  check_box に multiple を付けて使うと "0" と "1" が両方送られちゃうので、そうならないよう作られた、複数チェックボックス専用のメソッドが `collection_check_boxes` です。
5
5
 
6
+ 実際は曜日ではなくてユーザーの一覧でチェックボックスを作っているとのことなので、おそらく以下のようなコードになると思います。
7
+
8
+ ```slim
9
+ = f.collection_check_boxes :users, @users, :id, :name
10
+ ```
11
+
6
12
  【案2】
7
13
  細かくデザイン調整したいときに、あえて check_box と multiple で画面を作ることもなくはないです。
8
14
 
9
15
  その場合は f.check_box の第四引数に nil を指定すれば "0" を送らなくなります。
10
16
 
11
- ```
17
+ ```slim
18
+ - @users.each do |user|
12
- = f.check_box :days, { multiple: true }, day, nil
19
+ = f.check_box :users, { multiple: true }, user.id, nil
20
+ label = user.name
13
21
  ```