let's not run 3 queries, when a single query will do.

This commit is contained in:
Sam 2013-07-30 09:54:29 +10:00
parent 7661a5fed2
commit 8ec6d0ea6c

View File

@ -12,18 +12,20 @@ class SuggestedTopicsBuilder
def add_results(results) 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 # Only add results if we don't have those topic ids already
results = results.where('topics.id NOT IN (?)', @excluded_topic_ids) results = results.where('topics.id NOT IN (?)', @excluded_topic_ids)
.where(closed: false, archived: false, visible: true) .where(closed: false, archived: false, visible: true)
.to_a
return if results.blank? unless results.empty?
# Keep track of the ids we've added # Keep track of the ids we've added
@excluded_topic_ids.concat results.map {|r| r.id} @excluded_topic_ids.concat results.map {|r| r.id}
@results.concat results @results.concat results
end end
end
def results_left def results_left
SiteSetting.suggested_topics - @results.size SiteSetting.suggested_topics - @results.size