Skip to content

Commit 75acd77

Browse files
committed
fixed N+1 query in category tags
1 parent 88c52b4 commit 75acd77

2 files changed

Lines changed: 5 additions & 2 deletions

File tree

app/controllers/tags_controller.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ def index
1717
(@tag_set&.tags || Tag.all).order(:name)
1818
end
1919

20-
@tags = @tags.includes(:tag_synonyms)
20+
@tags = @tags.list_includes
2121
.paginate(page: params[:page], per_page: 50)
2222

2323
respond_to do |format|
@@ -43,7 +43,7 @@ def category
4343
@tag_set.tags.where(excerpt: ['', nil])
4444
else
4545
@tag_set.tags
46-
end
46+
end.list_includes
4747

4848
table = params[:hierarchical].present? ? 'tags_paths' : 'tags'
4949

app/models/tag.rb

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,9 @@ class Tag < ApplicationRecord
1818
validate :synonym_unique
1919
validates :name, uniqueness: { scope: [:tag_set_id], case_sensitive: false }
2020

21+
# scopes
22+
scope :list_includes, -> { includes(:tag_synonyms) }
23+
2124
# Fuzzy-searches tags by name, excerpt, and synonym name
2225
# @param term [String] search term
2326
# @return [ActiveRecord::Relation<Tag>]

0 commit comments

Comments
 (0)