質問編集履歴

1

ビューの実装を追加

2017/02/06 07:33

投稿

kuma3
kuma3

スコア60

test CHANGED
File without changes
test CHANGED
@@ -1,10 +1,36 @@
1
1
  RailsでN + 1クエリが発生している箇所でイーガーロードを行なってもN + 1クエリが解消されません。
2
2
 
3
- 実行しているActiviRecordのメソッドは次の通りです。
3
+ 実行しているメソッドは次の通りです。(ビューとコントローラ側の簡略化した実装を追加しました)
4
4
 
5
5
  ```ruby
6
6
 
7
- user.followed_users.select_user_cell.limit(30).order("relationships.id").where("relationships.id > 0").includes(:relationships)
7
+ followed_users = user.followed_users.select_user_cell.limit(30).order("relationships.id").where("relationships.id > 0").includes(:relationships)
8
+
9
+ // ビュー側の実装
10
+
11
+ json_user_list = []
12
+
13
+ followed_users.each do |followed_user|
14
+
15
+ user_json = followed_user.as_json
16
+
17
+ user_json[:is_added] = user.bool_following(followed_user)
18
+
19
+ json_user_list << followed_user.as_json
20
+
21
+ end
22
+
23
+ list = { users: json_user_list }
24
+
25
+ // コントローラ側の実装
26
+
27
+ render json: list, status: 200
28
+
29
+
30
+
31
+
32
+
33
+
8
34
 
9
35
  ```
10
36
 
@@ -88,6 +114,14 @@
88
114
 
89
115
 
90
116
 
117
+ 環境は次の通りです
118
+
119
+ Ruby 2.2.3
120
+
121
+ Rails 4.2.3
122
+
123
+
124
+
91
125
  何かアドバイスをいただけると助かります。
92
126
 
93
127
  よろしくお願いします。