Merge pull request #4405 from gdpelican/fix/intersection-pagination

FIX: Don't join on tags unnecessarily when matching all tags
This commit is contained in:
Neil Lalonde
2016-08-24 14:45:15 -04:00
committed by GitHub
2 changed files with 2 additions and 2 deletions

View File

@@ -299,7 +299,7 @@ class TagsController < ::ApplicationController
options[:no_tags] = true
else
options[:tags] = tag_params
options[:match_all_tags] = true if tag_params.size > 1
options[:match_all_tags] = true
end
options

View File

@@ -459,7 +459,6 @@ class TopicQuery
result = result.preload(:tags)
if @options[:tags] && @options[:tags].size > 0
result = result.joins(:tags)
if @options[:match_all_tags]
# ALL of the given tags:
@@ -476,6 +475,7 @@ class TopicQuery
end
else
# ANY of the given tags:
result = result.joins(:tags)
if @options[:tags][0].is_a?(Integer)
result = result.where("tags.id in (?)", @options[:tags])
else