teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

タイトル追加

2018/11/24 02:27

投稿

TakashiOda
TakashiOda

スコア34

answer CHANGED
@@ -1,3 +1,4 @@
1
+ 【自己解決】
1
2
  VIEW側のeach処理の中で、毎回平均値を計算させるようなモデルからメソッドを呼び出していること自体をやめないと、N+1問題は解決しないと考え、クエリの発行回数にのみ焦点を絞り、解決策を練りました。
2
3
 
3
4
  結論から先に言うと pairクラスの中でメソッドを定義して呼び出すことをやめました。そしてpairsテーブルの中に評価の平均値カラムを作り、Evaluationインスタンスがcreateされる旅に、評価の平均値が格納(再代入)されるようにしました。(スマートなやり方ではないのだろうとは自覚しておりますが・・・)