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 @@

Search

<%= form_tag(path, :method => "get") do %> <%= text_field_tag("tags", tags, :size => 20) %> + <% if params[:raw] %> + <%= hidden_field_tag :raw, params[:raw] %> + <% end %> + <% if params[:random] %> + <%= hidden_field_tag :random, params[:random] %> + <% end %> <%= submit_tag "Go", :name => nil %> <% end %>