質問編集履歴
2
追記を加えました
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
不要なイメージと思ったため
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
|
|