From a5feec8ec6e05f4c514f160ee868dd58e82c45b9 Mon Sep 17 00:00:00 2001 From: Toks Date: Mon, 18 May 2015 14:10:44 -0400 Subject: [PATCH] #1938 remove duplicates, remember &random and &raw params --- app/logical/post_sets/post.rb | 6 +++++- app/views/posts/partials/common/_search.html.erb | 6 ++++++ 2 files changed, 11 insertions(+), 1 deletion(-) 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 %>