質問編集履歴

3

記述場所変更

2021/03/11 02:09

投稿

ik_ko
ik_ko

スコア9

test CHANGED
File without changes
test CHANGED
@@ -92,29 +92,7 @@
92
92
 
93
93
  以下がgem 'buret'を使用した時の,N+1が起きたポップアップの表示です。
94
94
 
95
- https://gyazo.com/844186109cb5bd0c08753ca8c28ae642
96
-
97
- # 試したこと
98
-
99
- ```
100
-
101
- .with_attached_image
102
-
103
- ```
104
-
105
- このコマンドでactivestrageのN+1問題が解消できると記事で見つけたんですが解消されず,
106
-
107
- 記述の仕方が違う可能性があると思い、以下のように変更してみましたが解消できずにいる状況ですのでわかる方いましたらご教授お願いします。
108
-
109
- ```
110
-
111
- Article.includes(:tags, image_attachment: :blob, user: [profile: :avatar_attachment]).find(Like.group(:article_id).order('count(article_id) desc').limit(4).pluck(:article_id))
112
-
113
- ```
114
-
115
95
  以下追記しました!
116
-
117
- gem 'bullet'で表示されたのは以下の部分になります!
118
96
 
119
97
  ```
120
98
 
@@ -139,3 +117,21 @@
139
117
  /Users/imayoshikosuke/sdf-app/app/views/articles/index.html.haml:28:in `_app_views_articles_index_html_haml__2778570416798052491_70315830587700'
140
118
 
141
119
  ```
120
+
121
+ # 試したこと
122
+
123
+ ```
124
+
125
+ .with_attached_image
126
+
127
+ ```
128
+
129
+ このコマンドでactivestrageのN+1問題が解消できると記事で見つけたんですが解消されず,
130
+
131
+ 記述の仕方が違う可能性があると思い、以下のように変更してみましたが解消できずにいる状況ですのでわかる方いましたらご教授お願いします。
132
+
133
+ ```
134
+
135
+ Article.includes(:tags, image_attachment: :blob, user: [profile: :avatar_attachment]).find(Like.group(:article_id).order('count(article_id) desc').limit(4).pluck(:article_id))
136
+
137
+ ```

2

N+1を検知した時の表示を部分を追記しました

2021/03/11 02:09

投稿

ik_ko
ik_ko

スコア9

test CHANGED
File without changes
test CHANGED
@@ -111,3 +111,31 @@
111
111
  Article.includes(:tags, image_attachment: :blob, user: [profile: :avatar_attachment]).find(Like.group(:article_id).order('count(article_id) desc').limit(4).pluck(:article_id))
112
112
 
113
113
  ```
114
+
115
+ 以下追記しました!
116
+
117
+ gem 'bullet'で表示されたのは以下の部分になります!
118
+
119
+ ```
120
+
121
+ GET /
122
+
123
+ USE eager loading detected
124
+
125
+ ActiveStorage::Attachment => [:blob]
126
+
127
+ Add to your query: .includes([:blob])
128
+
129
+ Call stack
130
+
131
+ /Users/imayoshikosuke/sdf-app/app/views/commons/_articles.html.haml:17:in `block (2 levels) in _app_views_commons__articles_html_haml___396224862957515687_70315826656700'
132
+
133
+ /Users/imayoshikosuke/sdf-app/app/views/commons/_articles.html.haml:16:in `block in _app_views_commons__articles_html_haml___396224862957515687_70315826656700'
134
+
135
+ /Users/imayoshikosuke/sdf-app/app/views/commons/_articles.html.haml:1:in `each'
136
+
137
+ /Users/imayoshikosuke/sdf-app/app/views/commons/_articles.html.haml:1:in `_app_views_commons__articles_html_haml___396224862957515687_70315826656700'
138
+
139
+ /Users/imayoshikosuke/sdf-app/app/views/articles/index.html.haml:28:in `_app_views_articles_index_html_haml__2778570416798052491_70315830587700'
140
+
141
+ ```

1

問題箇所のviewを追加した

2021/03/10 10:53

投稿

ik_ko
ik_ko

スコア9

test CHANGED
File without changes
test CHANGED
@@ -5,6 +5,74 @@
5
5
  ポートフォリオの中で画像の保存はactivestrageを使用しているのですが、N+1問題が発生している箇所があり、それを解消しようと調べて、以下のように記述したところエラーが解消されずにいるのでご教授して頂きたいです。
6
6
 
7
7
  下記が各種ファイルの記述になります。
8
+
9
+ N+1が起きているviewファイル
10
+
11
+ ```
12
+
13
+ - articles.each do |article|
14
+
15
+ .articles
16
+
17
+ .card.articles-card
18
+
19
+ = link_to article_path(article) do
20
+
21
+ - if article.image.attached?
22
+
23
+ = image_tag article.image.variant(resize:'240x240').processed, class: 'hover'
24
+
25
+ .articles-price
26
+
27
+ #{article.price}円
28
+
29
+ .articles-star
30
+
31
+ 星評価 #{article.rate}
32
+
33
+ .articles-info
34
+
35
+ .objects
36
+
37
+ = article.object
38
+
39
+ .author
40
+
41
+ .author-left
42
+
43
+ = link_to account_path(article.user) do
44
+
45
+ = image_tag article.author_image, class: 'articles-avatar'
46
+
47
+ %span.author-name
48
+
49
+ = article.author_name
50
+
51
+ .author-right
52
+
53
+ %i.far.fa-comment.fa-2x.pt-1
54
+
55
+ = article.comment_count
56
+
57
+ %i.far.fa-thumbs-up.fa-2x.pt-1.pl-1
58
+
59
+ = article.like_count
60
+
61
+ .articles-tags
62
+
63
+ - article.tags.each do |tag|
64
+
65
+ %span.articles-tag
66
+
67
+ %span #{tag.name}
68
+
69
+ .articles-time
70
+
71
+ %time(datetime="#{article.created_at}")
72
+
73
+ = time_ago_in_words(article.created_at) + "前"
74
+
75
+ ```
8
76
 
9
77
  article.rb
10
78