diff --git a/app/logical/post_sets/post.rb b/app/logical/post_sets/post.rb index 121fda80d..ed184e987 100644 --- a/app/logical/post_sets/post.rb +++ b/app/logical/post_sets/post.rb @@ -74,7 +74,11 @@ module PostSets temp = [] limit = [per_page, count].min limit.times do - post = ::Post.tag_match(tag_string).offset(rand(count)).first + q = ::Post.tag_match(tag_string) + unless temp.empty? + q = q.where("id not in (?)", temp.map(&:id)) + end + post = q.offset(rand(count - temp.length)).first if post temp << post end diff --git a/app/views/posts/partials/common/_search.html.erb b/app/views/posts/partials/common/_search.html.erb index 2c466c6f6..604e43d21 100644 --- a/app/views/posts/partials/common/_search.html.erb +++ b/app/views/posts/partials/common/_search.html.erb @@ -7,6 +7,12 @@