mirror of
https://github.com/discourse/discourse.git
synced 2024-11-22 09:12:45 +08:00
let's not run 3 queries, when a single query will do.
This commit is contained in:
parent
7661a5fed2
commit
8ec6d0ea6c
|
@ -12,17 +12,19 @@ class SuggestedTopicsBuilder
|
|||
|
||||
def add_results(results)
|
||||
|
||||
return if results.blank?
|
||||
# WARNING .blank? will execute an Active Record query
|
||||
return unless results
|
||||
|
||||
# Only add results if we don't have those topic ids already
|
||||
results = results.where('topics.id NOT IN (?)', @excluded_topic_ids)
|
||||
.where(closed: false, archived: false, visible: true)
|
||||
.to_a
|
||||
|
||||
return if results.blank?
|
||||
|
||||
# Keep track of the ids we've added
|
||||
@excluded_topic_ids.concat results.map {|r| r.id}
|
||||
@results.concat results
|
||||
unless results.empty?
|
||||
# Keep track of the ids we've added
|
||||
@excluded_topic_ids.concat results.map {|r| r.id}
|
||||
@results.concat results
|
||||
end
|
||||
end
|
||||
|
||||
def results_left
|
||||
|
@ -37,4 +39,4 @@ class SuggestedTopicsBuilder
|
|||
@results.size
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue
Block a user