PERF: eliminate N+1 query due to polls

This commit is contained in:
Sam
2015-05-04 16:12:03 +10:00
parent 374e7325fa
commit c3e3afcb2c
2 changed files with 17 additions and 1 deletions
+8 -1
View File
@@ -433,7 +433,14 @@ class TopicView
end
def closest_post_to(post_number)
closest_post = @filtered_posts.order("@(post_number - #{post_number})").limit(1).pluck(:id)
# happy path
closest_post = @filtered_posts.where("post_number = ?", post_number).limit(1).pluck(:id)
if closest_post.empty?
# less happy path, missing post
closest_post = @filtered_posts.order("@(post_number - #{post_number})").limit(1).pluck(:id)
end
return nil if closest_post.empty?
filtered_post_ids.index(closest_post.first) || filtered_post_ids[0]