質問編集履歴
1
ビューの実装を追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,7 +1,20 @@
|
|
1
1
|
RailsでN + 1クエリが発生している箇所でイーガーロードを行なってもN + 1クエリが解消されません。
|
2
|
-
実行している
|
2
|
+
実行しているメソッドは次の通りです。(ビューとコントローラ側の簡略化した実装を追加しました)
|
3
3
|
```ruby
|
4
|
-
user.followed_users.select_user_cell.limit(30).order("relationships.id").where("relationships.id > 0").includes(:relationships)
|
4
|
+
followed_users = user.followed_users.select_user_cell.limit(30).order("relationships.id").where("relationships.id > 0").includes(:relationships)
|
5
|
+
// ビュー側の実装
|
6
|
+
json_user_list = []
|
7
|
+
followed_users.each do |followed_user|
|
8
|
+
user_json = followed_user.as_json
|
9
|
+
user_json[:is_added] = user.bool_following(followed_user)
|
10
|
+
json_user_list << followed_user.as_json
|
11
|
+
end
|
12
|
+
list = { users: json_user_list }
|
13
|
+
// コントローラ側の実装
|
14
|
+
render json: list, status: 200
|
15
|
+
|
16
|
+
|
17
|
+
|
5
18
|
```
|
6
19
|
この結果ログに表示されるSQLは次の通りです。
|
7
20
|
```sql
|
@@ -43,5 +56,9 @@
|
|
43
56
|
end
|
44
57
|
```
|
45
58
|
|
59
|
+
環境は次の通りです
|
60
|
+
Ruby 2.2.3
|
61
|
+
Rails 4.2.3
|
62
|
+
|
46
63
|
何かアドバイスをいただけると助かります。
|
47
64
|
よろしくお願いします。
|