質問編集履歴
3
ViewのPlayer名を出力する部分の記述を修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -26,7 +26,7 @@
|
|
26
26
|
<h2>試合一覧</h2>
|
27
27
|
<% @games.each do |game| %>
|
28
28
|
<div>
|
29
|
-
|
29
|
+
<%= Player.find(game.player1_id).name %><span>対</span><%= Player.find(game.player2_id).name %>//ここでN+1が発生
|
30
30
|
<%= game.result %>
|
31
31
|
</div>
|
32
32
|
<% end %>
|
2
@videos取得のクエリを修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -18,7 +18,7 @@
|
|
18
18
|
## Controller
|
19
19
|
```rb
|
20
20
|
@player = Player.find(params[:player_id])
|
21
|
-
@games = Game.where(player1_id: @player.id).or(
|
21
|
+
@games = Game.where(player1_id: @player.id).or(Game.where(player2_id: @player.id))
|
22
22
|
```
|
23
23
|
|
24
24
|
## View
|
1
モデルの関連づけを追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -38,4 +38,14 @@
|
|
38
38
|
|
39
39
|
|
40
40
|
この状況でN+1問題を解決し、クエリの数を減らす手段がございましたら、アドバイスいただけると嬉しいです。
|
41
|
-
どうぞよろしくお願いいたします。
|
41
|
+
どうぞよろしくお願いいたします。
|
42
|
+
|
43
|
+
## 追記
|
44
|
+
```model
|
45
|
+
class Player < ApplicationRecord
|
46
|
+
has_many :games
|
47
|
+
end
|
48
|
+
class Game < ApplicationRecord
|
49
|
+
belongs_to :player
|
50
|
+
end
|
51
|
+
```
|