質問編集履歴

3

初心者アイコンをつけ、書き忘れていた試したことを記入した

2019/08/24 14:23

投稿

kei_murakami
kei_murakami

スコア6

test CHANGED
File without changes
test CHANGED
@@ -134,7 +134,7 @@
134
134
 
135
135
 
136
136
 
137
-
137
+ ・eachを外してみようとした(フォームに入るレコードの数が正しくなったとしても表の形が崩れると思いやめた)
138
138
 
139
139
 
140
140
 

2

schema.rbやorder.rbの情報を追加しました。

2019/08/24 14:23

投稿

kei_murakami
kei_murakami

スコア6

test CHANGED
File without changes
test CHANGED
@@ -20,6 +20,162 @@
20
20
 
21
21
  説明不足でしたらお手数をおかけしますが以下をご参照ください。
22
22
 
23
+ ・[ER図](https://gyazo.com/6cbd1afe23b1a3614b6da29060bae6fa)
24
+
25
+ ・[github](https://github.com/km19960621/ownersteam)
26
+
27
+
28
+
29
+ ### 発生している問題・エラーメッセージ
30
+
31
+
32
+
33
+ 以下のように、編集画面で全ての行にオーダーが持つ全てのプレイヤーの情報が入ってしまいます。
34
+
35
+ https://gyazo.com/aa2d8dad91f978cd4f3dde7694032e66
36
+
37
+
38
+
39
+ ### 該当のソースコード
40
+
41
+
42
+
43
+ ```ruby
44
+
45
+ def edit
46
+
47
+ @order = Order.find(params[:id])
48
+
49
+ end
50
+
51
+ ```
52
+
53
+
54
+
55
+ ```html
56
+
57
+ <%= form_with model: @order do |f| %>
58
+
59
+
60
+
61
+ (省略)
62
+
63
+
64
+
65
+ <% for num in 1..9 do %>
66
+
67
+ <tr>
68
+
69
+ <td class="td-num">
70
+
71
+ <%= num %>
72
+
73
+ </td>
74
+
75
+ <%= f.fields_for :players do |p| %>
76
+
77
+ <td class="td-position">
78
+
79
+ <%= p.collection_select :position_id, Position.all, :id, :name, :include_blank => true %>
80
+
81
+ </td>
82
+
83
+ <td class="td-card">
84
+
85
+ <%= p.collection_select :card_id, Card.all.order(:image_front), :id, :name, :include_blank => true %>
86
+
87
+ </td>
88
+
89
+ <% end %>
90
+
91
+ </tr>
92
+
93
+ <% end %>
94
+
95
+ <tr>
96
+
97
+ <td class="td-num">
98
+
99
+ <%= "" %>
100
+
101
+ </td>
102
+
103
+ <%= f.fields_for :players do |p| %>
104
+
105
+ <td class="td-position">
106
+
107
+ <%= p.collection_select :position_id, Position.all, :id, :name, :include_blank => true %>
108
+
109
+ </td>
110
+
111
+ <td class="td-card">
112
+
113
+ <%= p.collection_select :card_id, Card.all.order(:image_front), :id, :name, :include_blank => true %>
114
+
115
+ </td>
116
+
117
+ <% end %>
118
+
119
+ </tr>
120
+
121
+
122
+
123
+ (省略)
124
+
125
+
126
+
127
+ <% end %>
128
+
129
+ ```
130
+
131
+
132
+
133
+ ### 試したこと
134
+
135
+
136
+
137
+
138
+
139
+
140
+
141
+ ### 補足情報(FW/ツールのバージョンなど)
142
+
143
+
144
+
145
+ ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-darwin18]
146
+
147
+ Rails 5.2.3
148
+
149
+
150
+
151
+ ### 前提・実現したいこと
152
+
153
+
154
+
155
+ Railsで野球カードの画像とポジションから野球のオーダー画像を作成するアプリを作っています。
156
+
157
+ アプリの使い方としては野球カードの画像を登録し、formでポジションと選手名を選択してオーダーを作成するというものです。
158
+
159
+ オーダーのフォームの中にネストさせたプレイヤーのフォームがあり、そこでfields_forを使ってプレイヤーテーブルにcard_idとposition_idを持たせることでオーダーを作成します。
160
+
161
+ 具体的にはデータベースに保存された登録済みのカードとポジション(アプリの作成者があらかじめ登録したもの)からcollection_selectを用いてデータを選択しています。
162
+
163
+
164
+
165
+ オーダー作成のフォームはnewとeditでrender partialを使って使いまわしているのですが、editではこのように( https://gyazo.com/aa2d8dad91f978cd4f3dde7694032e66 )全ての行にオーダーが持つ全てのプレイヤーの情報が入ってしまうという状況です。
166
+
167
+ 現在のフォームのtableの形を崩さず、一つの行に一つのプレイヤーのデータが入るようにするにはどのようにすれば良いのでしょうか?
168
+
169
+
170
+
171
+ ・newでの本来の形のフォーム
172
+
173
+ https://gyazo.com/57094673f3826a97186d9b22541ce2f0
174
+
175
+
176
+
177
+ 説明不足でしたらお手数をおかけしますが以下をご参照ください。
178
+
23
179
  ・ER図
24
180
 
25
181
  https://gyazo.com/6cbd1afe23b1a3614b6da29060bae6fa
@@ -44,6 +200,8 @@
44
200
 
45
201
 
46
202
 
203
+ order_controller.rb
204
+
47
205
  ```ruby
48
206
 
49
207
  def edit
@@ -56,6 +214,8 @@
56
214
 
57
215
 
58
216
 
217
+ _form.html.erb
218
+
59
219
  ```html
60
220
 
61
221
  <%= form_with model: @order do |f| %>
@@ -134,11 +294,119 @@
134
294
 
135
295
 
136
296
 
297
+ new.html.erb
298
+
299
+ ```ruby
300
+
301
+ <%= render partial: 'form', locals: { order: @order } %>
302
+
303
+
304
+
305
+ ```
306
+
307
+
308
+
309
+ edit.html.erb
310
+
311
+ ```ruby
312
+
313
+ <%= render partial: 'form', locals: { order: @order } %>
314
+
315
+ <%= link_to '削除', @order, method: :delete, data: { confirm: "削除しました" }, class: 'link' %>
316
+
317
+
318
+
319
+ ```
320
+
321
+
322
+
323
+ schema.rb
324
+
325
+ ```ruby
326
+
327
+ create_table "orders", force: :cascade do |t|
328
+
329
+ t.integer "user_id"
330
+
331
+ t.string "title"
332
+
333
+ t.datetime "created_at", null: false
334
+
335
+ t.datetime "updated_at", null: false
336
+
337
+ end
338
+
339
+
340
+
341
+ create_table "players", force: :cascade do |t|
342
+
343
+ t.integer "order_id"
344
+
345
+ t.integer "card_id"
346
+
347
+ t.integer "position_id"
348
+
349
+ t.datetime "created_at", null: false
350
+
351
+ t.datetime "updated_at", null: false
352
+
353
+ end
354
+
355
+ ```
356
+
357
+
358
+
359
+ order.rb
360
+
361
+ ```ruby
362
+
363
+ class Order < ApplicationRecord
364
+
365
+ belongs_to :user, optional: true
366
+
367
+
368
+
369
+ has_many :players, inverse_of: :order
370
+
371
+ accepts_nested_attributes_for :players
372
+
373
+ end
374
+
375
+ ```
376
+
377
+
378
+
379
+ player.rb
380
+
381
+ ```ruby
382
+
383
+ class Player < ApplicationRecord
384
+
385
+ validates :position_id, presence: true
386
+
387
+ validates :card_id, presence: true
388
+
389
+
390
+
391
+ belongs_to :order
392
+
393
+ belongs_to :card, optional: true
394
+
395
+ belongs_to :position, optional: true
396
+
397
+ end
398
+
399
+
400
+
401
+ ```
402
+
403
+
404
+
137
405
  ### 試したこと
138
406
 
139
407
 
140
408
 
141
-
409
+ ・ループを外す(フォームの形が崩れると思い途中でやめました)
142
410
 
143
411
 
144
412
 
@@ -149,185 +417,3 @@
149
417
  ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-darwin18]
150
418
 
151
419
  Rails 5.2.3
152
-
153
-
154
-
155
- ### 前提・実現したいこと
156
-
157
-
158
-
159
- Railsで野球カードの画像とポジションから野球のオーダー画像を作成するアプリを作っています。
160
-
161
- アプリの使い方としては野球カードの画像を登録し、formでポジションと選手名を選択してオーダーを作成するというものです。
162
-
163
- オーダーのフォームの中にネストさせたプレイヤーのフォームがあり、そこでfields_forを使ってプレイヤーテーブルにcard_idとposition_idを持たせることでオーダーを作成します。
164
-
165
- 具体的にはデータベースに保存された登録済みのカードとポジション(アプリの作成者があらかじめ登録したもの)からcollection_selectを用いてデータを選択しています。
166
-
167
-
168
-
169
- オーダー作成のフォームはnewとeditでrender partialを使って使いまわしているのですが、editではこのように( https://gyazo.com/aa2d8dad91f978cd4f3dde7694032e66 )全ての行にオーダーが持つ全てのプレイヤーの情報が入ってしまうという状況です。
170
-
171
- 現在のフォームのtableの形を崩さず、一つの行に一つのプレイヤーのデータが入るようにするにはどのようにすれば良いのでしょうか?
172
-
173
-
174
-
175
- ・newでの本来の形のフォーム
176
-
177
- https://gyazo.com/57094673f3826a97186d9b22541ce2f0
178
-
179
-
180
-
181
- 説明不足でしたらお手数をおかけしますが以下をご参照ください。
182
-
183
- ・ER図
184
-
185
- https://gyazo.com/6cbd1afe23b1a3614b6da29060bae6fa
186
-
187
- ・github
188
-
189
- https://github.com/km19960621/ownersteam
190
-
191
-
192
-
193
- ### 発生している問題・エラーメッセージ
194
-
195
-
196
-
197
- 以下のように、編集画面で全ての行にオーダーが持つ全てのプレイヤーの情報が入ってしまいます。
198
-
199
- https://gyazo.com/aa2d8dad91f978cd4f3dde7694032e66
200
-
201
-
202
-
203
- ### 該当のソースコード
204
-
205
-
206
-
207
- ```ruby
208
-
209
- def edit
210
-
211
- @order = Order.find(params[:id])
212
-
213
- end
214
-
215
- ```
216
-
217
-
218
-
219
- ```html
220
-
221
- <%= form_with model: @order do |f| %>
222
-
223
-
224
-
225
- (省略)
226
-
227
-
228
-
229
- <% for num in 1..9 do %>
230
-
231
- <tr>
232
-
233
- <td class="td-num">
234
-
235
- <%= num %>
236
-
237
- </td>
238
-
239
- <%= f.fields_for :players do |p| %>
240
-
241
- <td class="td-position">
242
-
243
- <%= p.collection_select :position_id, Position.all, :id, :name, :include_blank => true %>
244
-
245
- </td>
246
-
247
- <td class="td-card">
248
-
249
- <%= p.collection_select :card_id, Card.all.order(:image_front), :id, :name, :include_blank => true %>
250
-
251
- </td>
252
-
253
- <% end %>
254
-
255
- </tr>
256
-
257
- <% end %>
258
-
259
- <tr>
260
-
261
- <td class="td-num">
262
-
263
- <%= "" %>
264
-
265
- </td>
266
-
267
- <%= f.fields_for :players do |p| %>
268
-
269
- <td class="td-position">
270
-
271
- <%= p.collection_select :position_id, Position.all, :id, :name, :include_blank => true %>
272
-
273
- </td>
274
-
275
- <td class="td-card">
276
-
277
- <%= p.collection_select :card_id, Card.all.order(:image_front), :id, :name, :include_blank => true %>
278
-
279
- </td>
280
-
281
- <% end %>
282
-
283
- </tr>
284
-
285
-
286
-
287
- (省略)
288
-
289
-
290
-
291
- <% end %>
292
-
293
- ```
294
-
295
-
296
-
297
- ```ruby
298
-
299
- <%= render partial: 'form', locals: { order: @order } %>
300
-
301
-
302
-
303
- ```
304
-
305
-
306
-
307
- ```ruby
308
-
309
- <%= render partial: 'form', locals: { order: @order } %>
310
-
311
- <%= link_to '削除', @order, method: :delete, data: { confirm: "削除しました" }, class: 'link' %>
312
-
313
-
314
-
315
- ```
316
-
317
-
318
-
319
- ### 試したこと
320
-
321
-
322
-
323
- ・ループを外す(フォームの形が崩れると思い途中でやめました)
324
-
325
-
326
-
327
- ### 補足情報(FW/ツールのバージョンなど)
328
-
329
-
330
-
331
- ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-darwin18]
332
-
333
- Rails 5.2.3

1

コードの追加

2019/08/21 06:27

投稿

kei_murakami
kei_murakami

スコア6

test CHANGED
File without changes
test CHANGED
@@ -294,6 +294,28 @@
294
294
 
295
295
 
296
296
 
297
+ ```ruby
298
+
299
+ <%= render partial: 'form', locals: { order: @order } %>
300
+
301
+
302
+
303
+ ```
304
+
305
+
306
+
307
+ ```ruby
308
+
309
+ <%= render partial: 'form', locals: { order: @order } %>
310
+
311
+ <%= link_to '削除', @order, method: :delete, data: { confirm: "削除しました" }, class: 'link' %>
312
+
313
+
314
+
315
+ ```
316
+
317
+
318
+
297
319
  ### 試したこと
298
320
 
299
321