質問編集履歴

1

①に情報を追加。

2017/10/22 14:24

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- ruby on rails セレクトボックス バリデーション
1
+ ruby on rails f.selectのpromptにvalueを設定する方法。バリデーション
test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
 
5
-
5
+ **(未解決です。)**
6
6
 
7
7
  セレクトボックスで「選択してください」の時は、バリデーションに引っかかるようにしたいのですが、undefined method `map' for nil:NilClassとエラー画面が表示されてしまいます。
8
8
 
@@ -14,15 +14,27 @@
14
14
 
15
15
  = f.label "記載企業"
16
16
 
17
- = f.select :company_id, @companies.map{|c| [c.name, c.id]}, :prompt => "選択してください"
17
+ = f.select :company_id, @companies.map{|c| [c.name, c.id]}, { :prompt => "選択してください" }
18
18
 
19
19
  ```
20
20
 
21
21
 
22
22
 
23
+ **〜追加の内容〜**
23
24
 
24
25
 
26
+
27
+ 検証でソースコードをみてみたところ、valueに値が設定されていませんでした。これが原因かなと思っているのですが、どのようにすれば、promptにvalue=""など設定することができますか?
28
+
29
+
30
+
31
+ ![イメージ説明](9da4dca1010bfaa8984e7c5f2190b06c.png)
32
+
33
+
34
+
25
-
35
+ **(解決しました。{}でくくるときちんと表示されるようになりました。)**
36
+
37
+
26
38
 
27
39
  セレクトボックスのスタイリングを写真のようにしたいのですが、
28
40
 
@@ -36,7 +48,7 @@
36
48
 
37
49
  ```html
38
50
 
39
- = f.select :company_id, @companies.map{|c| [c.name, c.id]}, :prompt => "選択してください", class: "form-control select2"
51
+ = f.select :company_id, @companies.map{|c| [c.name, c.id]}, { :prompt => "選択してください" }, { class: "form-control select2" }
40
52
 
41
53
  ```
42
54
 
@@ -49,5 +61,3 @@
49
61
 
50
62
 
51
63
  テンプレートエンジンにslimを導入しています。
52
-
53
- スタイリングはadminLTEを使用しています。