質問編集履歴

2

追記を加えました

2020/09/24 05:55

投稿

ty_tech
ty_tech

スコア1

test CHANGED
File without changes
test CHANGED
@@ -102,7 +102,7 @@
102
102
 
103
103
 
104
104
 
105
- ### posts_controller.rb (現在考えている記述)
105
+ ### posts_controller.rb (~~現在考えている記述~~(追記2現在のコントローラを記述しています)
106
106
 
107
107
 
108
108
 
@@ -214,4 +214,182 @@
214
214
 
215
215
 
216
216
 
217
+
218
+
219
+ ### 追記:1 関連テーブルを追加しました
220
+
221
+
222
+
223
+ ### schema.rb 
224
+
225
+
226
+
227
+ ```
228
+
229
+ create_table "posts", force: :cascade do |t|
230
+
231
+ t.string "fish_image"
232
+
233
+ t.string "fish_name"
234
+
235
+ t.float "catch_size"
236
+
237
+ t.float "weight"
238
+
239
+ t.string "range"
240
+
241
+ t.integer "user_id"
242
+
243
+ t.datetime "created_at", precision: 6, null: false
244
+
245
+ t.datetime "updated_at", precision: 6, null: false
246
+
247
+ t.integer "tournament_id"
248
+
249
+ end
250
+
251
+
252
+
253
+ create_table "tournaments", force: :cascade do |t|
254
+
255
+ t.date "date"
256
+
257
+ t.string "fishing_ground"
258
+
259
+ t.string "fishing_style"
260
+
261
+ t.string "condition"
262
+
263
+ t.string "fish_name"
264
+
265
+ t.string "keeper_size"
266
+
267
+ t.string "some_fish"
268
+
269
+ t.text "comment"
270
+
271
+ t.datetime "created_at", precision: 6, null: false
272
+
273
+ t.datetime "updated_at", precision: 6, null: false
274
+
275
+ t.integer "user_id"
276
+
277
+ end
278
+
279
+
280
+
281
+ create_table "users", force: :cascade do |t|
282
+
283
+ t.string "email", default: "", null: false
284
+
285
+ t.string "encrypted_password", default: "", null: false
286
+
287
+ t.string "reset_password_token"
288
+
289
+ t.datetime "reset_password_sent_at"
290
+
291
+ t.datetime "remember_created_at"
292
+
293
+ t.datetime "created_at", precision: 6, null: false
294
+
295
+ t.datetime "updated_at", precision: 6, null: false
296
+
297
+ t.string "nickname"
298
+
299
+ t.string "image"
300
+
301
+ t.string "main_field"
302
+
303
+ t.string "main_target"
304
+
305
+ t.string "max_size"
306
+
307
+ t.text "comment"
308
+
309
+ t.index ["email"], name: "index_users_on_email", unique: true
310
+
311
+ t.index ["reset_password_token"], name: "index_users_on_reset_password_token", unique: true
312
+
313
+ end
314
+
315
+ ```
316
+
317
+
318
+
319
+
320
+
321
+ ### 追記:2 
322
+
323
+ コントローラとviewを変更したらエラーはなくなりました。
324
+
325
+
326
+
327
+
328
+
329
+ ### posts_controller.rb (現在のコントローラ)
330
+
331
+
332
+
333
+ ```
334
+
335
+ def ranks
336
+
337
+ @tournament = Tournament.find(params[:tournament_id])
338
+
339
+ @ranks = @tournament.posts.joins(:user).group("users.id", "users.nickname").order('sum_catch_size desc').sum(:catch_size)
340
+
341
+ end
342
+
343
+
344
+
345
+ ※上記で取得できた内容です → { [user_id, user_nickname] => "sum_catch_size" }
346
+
347
+ 2つデータが入っているとこんな取得の仕方です → {[2, "Aくん"]=>95.5, [1, "Bくん"]=>90.5}
348
+
349
+ ```
350
+
351
+
352
+
353
+
354
+
355
+ ### app/views/posts/ranks.html.erb
356
+
357
+ ```
358
+
359
+ <% @ranks.each.with_index(1) do |(nickname,sum_size),i| %>
360
+
361
+ </p><%= "第#{i}位 #{sum_size}cm" %></p>
362
+
363
+ <p><%= nickname[1] %></p>
364
+
365
+ <% end %>
366
+
367
+
368
+
369
+ ```
370
+
371
+
372
+
373
+ catch_sizeの合計値の大きい順に並べ変えて、「合計値」と「ユーザー名」は取得できました。
374
+
375
+ ただ、投稿されたpostのイメージ画像が含まれていません。
376
+
377
+
378
+
379
+ ### 完成イメージを貼ります
380
+
381
+ ![イメージ説明](abf22b3a2478826a4696ef9125765c06.png)
382
+
383
+
384
+
385
+ **「質問」**(追加質問になってしまい申し訳ございません。現在は以下の内容に悩んでおります)
386
+
387
+ **@ranks内に追加で投稿イメージを含めることは可能でしょうか?それとも分けて取得した方が良いでしょうか?**
388
+
389
+ **(@ranksに投稿イメージを含めたい理由:ユーザーと投稿イメージの整合性が取れるようにしたいため)**
390
+
391
+
392
+
393
+
394
+
217
395
  初歩的な内容でお恥ずかしいですが、ご教示頂きたくお願い致します。

1

不要なイメージと思ったため

2020/09/24 05:55

投稿

ty_tech
ty_tech

スコア1

test CHANGED
File without changes
test CHANGED
@@ -14,24 +14,6 @@
14
14
 
15
15
 
16
16
 
17
- ### 関係性のイメージ
18
-
19
-
20
-
21
- ![イメージ説明](3c9342a411b1f36e3884545a3198e1d8.png)
22
-
23
-
24
-
25
- ### 完成イメージ
26
-
27
- ![イメージ説明](6006fb41f5fd0ff57a96814f5ceb419b.png)
28
-
29
-
30
-
31
-
32
-
33
-
34
-
35
17
  ### Postモデル
36
18
 
37
19
 
@@ -50,6 +32,8 @@
50
32
 
51
33
 
52
34
 
35
+
36
+
53
37
  ### Userモデル
54
38
 
55
39