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

質問編集履歴

1

ビューの実装を追加

2017/02/06 07:33

投稿

kuma3
kuma3

スコア60

title CHANGED
File without changes
body CHANGED
@@ -1,7 +1,20 @@
1
1
  RailsでN + 1クエリが発生している箇所でイーガーロードを行なってもN + 1クエリが解消されません。
2
- 実行しているActiviRecordのメソッドは次の通りです。
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
  よろしくお願いします。