質問編集履歴

3

ViewのPlayer名を出力する部分の記述を修正

2020/05/21 08:38

投稿

d0ne1s
d0ne1s

スコア32

test CHANGED
File without changes
test CHANGED
@@ -54,7 +54,7 @@
54
54
 
55
55
  <div>
56
56
 
57
- <%= game.player.name %> <%= game.player.name %> //ここでN+1が発生
57
+   <%= Player.find(game.player1_id).name %><span>対</span><%= Player.find(game.player2_id).name %>//ここでN+1が発生
58
58
 
59
59
  <%= game.result %>
60
60
 

2

@videos取得のクエリを修正

2020/05/21 08:38

投稿

d0ne1s
d0ne1s

スコア32

test CHANGED
File without changes
test CHANGED
@@ -38,7 +38,7 @@
38
38
 
39
39
  @player = Player.find(params[:player_id])
40
40
 
41
- @games = Game.where(player1_id: @player.id).or(Video.where(player2_id: @player.id))
41
+ @games = Game.where(player1_id: @player.id).or(Game.where(player2_id: @player.id))
42
42
 
43
43
  ```
44
44
 

1

モデルの関連づけを追記

2020/05/21 08:35

投稿

d0ne1s
d0ne1s

スコア32

test CHANGED
File without changes
test CHANGED
@@ -79,3 +79,23 @@
79
79
  この状況でN+1問題を解決し、クエリの数を減らす手段がございましたら、アドバイスいただけると嬉しいです。
80
80
 
81
81
  どうぞよろしくお願いいたします。
82
+
83
+
84
+
85
+ ## 追記
86
+
87
+ ```model
88
+
89
+ class Player < ApplicationRecord
90
+
91
+ has_many :games
92
+
93
+ end
94
+
95
+ class Game < ApplicationRecord
96
+
97
+ belongs_to :player
98
+
99
+ end
100
+
101
+ ```