diff --git a/app/logical/tag_autocomplete.rb b/app/logical/tag_autocomplete.rb index 32d2e4c4e..c34fd7661 100644 --- a/app/logical/tag_autocomplete.rb +++ b/app/logical/tag_autocomplete.rb @@ -23,7 +23,7 @@ module TagAutocomplete end def count_sort(query, words) - words.uniq.sort_by do |x| + words.uniq(&:name).sort_by do |x| x.post_count * x.weight end.reverse.slice(0, LIMIT) end diff --git a/test/models/tag_autocomplete_test.rb b/test/models/tag_autocomplete_test.rb index 7a3b95189..5f4915572 100644 --- a/test/models/tag_autocomplete_test.rb +++ b/test/models/tag_autocomplete_test.rb @@ -8,6 +8,11 @@ class TagAutocompleteTest < ActiveSupport::TestCase create(:tag, name: "abcdef", post_count: 1) assert_equal(["abcdef"], subject.search("A").map(&:name)) end + + should "not return duplicates" do + create(:tag, name: "red_eyes", post_count: 5001) + assert_equal(%w[red_eyes], subject.search("re").map(&:name)) + end end context "#search_exact" do