発生している問題
現在エンジニア転職を目指しているrailsを学習中の初学者ですよろしくお願いします。
ポートフォリオの中で画像の保存はactivestrageを使用しているのですが、N+1問題が発生している箇所があり、それを解消しようと調べて、以下のように記述したところエラーが解消されずにいるのでご教授して頂きたいです。
下記が各種ファイルの記述になります。
N+1が起きているviewファイル
- articles.each do |article| .articles .card.articles-card = link_to article_path(article) do - if article.image.attached? = image_tag article.image.variant(resize:'240x240').processed, class: 'hover' .articles-price #{article.price}円 .articles-star 星評価 #{article.rate} .articles-info .objects = article.object .author .author-left = link_to account_path(article.user) do = image_tag article.author_image, class: 'articles-avatar' %span.author-name = article.author_name .author-right %i.far.fa-comment.fa-2x.pt-1 = article.comment_count %i.far.fa-thumbs-up.fa-2x.pt-1.pl-1 = article.like_count .articles-tags - article.tags.each do |tag| %span.articles-tag %span #{tag.name} .articles-time %time(datetime="#{article.created_at}") = time_ago_in_words(article.created_at) + "前"
article.rb
has_one_attached :image
article_controller.rb
@ranking_articles = Article.includes(:tags, user: [profile: :avatar_attachment]).with_attached_image.find(Like.group(:article_id).order('count(article_id) desc').limit(4).pluck(:article_id))
以下がgem 'buret'を使用した時の,N+1が起きたポップアップの表示です。
以下追記しました!
GET / USE eager loading detected ActiveStorage::Attachment => [:blob] Add to your query: .includes([:blob]) Call stack /Users/imayoshikosuke/sdf-app/app/views/commons/_articles.html.haml:17:in `block (2 levels) in _app_views_commons__articles_html_haml___396224862957515687_70315826656700' /Users/imayoshikosuke/sdf-app/app/views/commons/_articles.html.haml:16:in `block in _app_views_commons__articles_html_haml___396224862957515687_70315826656700' /Users/imayoshikosuke/sdf-app/app/views/commons/_articles.html.haml:1:in `each' /Users/imayoshikosuke/sdf-app/app/views/commons/_articles.html.haml:1:in `_app_views_commons__articles_html_haml___396224862957515687_70315826656700' /Users/imayoshikosuke/sdf-app/app/views/articles/index.html.haml:28:in `_app_views_articles_index_html_haml__2778570416798052491_70315830587700'
試したこと
.with_attached_image
このコマンドでactivestrageのN+1問題が解消できると記事で見つけたんですが解消されず,
記述の仕方が違う可能性があると思い、以下のように変更してみましたが解消できずにいる状況ですのでわかる方いましたらご教授お願いします。
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))
回答1件
あなたの回答
tips
プレビュー