質問編集履歴

1

例示用コードの追記

2018/09/09 04:51

投稿

Gr.
Gr.

スコア89

test CHANGED
File without changes
test CHANGED
@@ -61,3 +61,85 @@
61
61
 
62
62
 
63
63
  質問内容からお察しいただけるかと思いますが、全くの初心者ですのでお手柔らかにお願いします。
64
+
65
+
66
+
67
+
68
+
69
+
70
+
71
+
72
+
73
+ ### 例示用コード
74
+
75
+ コメントありがとうございます。
76
+
77
+ 以下にコードを追記します。
78
+
79
+ たとえばチェックボックスで複数選択可にする場合、今の自分の知識では下記のように書くしかありません。
80
+
81
+ ```html
82
+
83
+ <%= form_for(@users) do |f| %>
84
+
85
+  <label>アメリカ<%= f.check_box 'visited1', {}, "アメリカ" %></label>
86
+
87
+  <label>イギリス<%= f.check_box 'visited2', {}, "イギリス" %></label>
88
+
89
+  <label>中国<%= f.check_box 'visited3', {}, "中国" %></label>
90
+
91
+  <%= f.submit %>
92
+
93
+ <% end %>
94
+
95
+ ```
96
+
97
+ つまり、カラムをvisited1、visited2、visited3...と用意してそこに値を入れていくという何とも非効率なやり方です。選択肢が3つ程度ならこれでもいいのでしょうが、国名全てを選択肢にするとなると、これでは到底現実的ではなく、もっといい書き方があるはずです。
98
+
99
+
100
+
101
+ そこで、登録できる上限を5か国までとし、下記のようにtext_fieldを使ったほうがいいのかなと思ったのですが、、、
102
+
103
+ ```html
104
+
105
+ <%= form_for(@users) do |f| %>
106
+
107
+  <p>行ったことのある国1</p>
108
+
109
+  <p><%= f.text_field :visited %></p>
110
+
111
+  <p>行ったことのある国2</p>
112
+
113
+  <p><%= f.text_field :visited %></p>
114
+
115
+  <p>行ったことのある国3</p>
116
+
117
+  <p><%= f.text_field :visited %></p>
118
+
119
+  <p>行ったことのある国4</p>
120
+
121
+  <p><%= f.text_field :visited %></p>
122
+
123
+  <p>行ったことのある国5</p>
124
+
125
+  <p><%= f.text_field :visited %></p>
126
+
127
+  <%= f.submit %>
128
+
129
+ <% end %>
130
+
131
+ ```
132
+
133
+ これでは最後のフィールドに入れた値しか受け取れませんよね...
134
+
135
+ この5つのフィールドに入れられた値をvisitedカラムに "アメリカ", "イギリス", "中国" といった形で保存したいのです。
136
+
137
+
138
+
139
+ 1つのtext_fieldで「ユーザーが単語をスペースで区切って入力すれば配列で保存できる」なんてことはできないのでしょうかね。
140
+
141
+
142
+
143
+ ド素人のレベルの低い質問で恐縮です。
144
+
145
+ コードのサンプルなど無くても、「〇〇使えば出来るよ」「こんな感じで書けば?」的なヒントだけでもいただければ自力で調べてみますので何とぞよろしくお願いいたします。