spec/integration/associations_spec.rb in pg_search-0.7.0 vs spec/integration/associations_spec.rb in pg_search-0.7.1
- old
+ new
@@ -465,6 +465,48 @@
results.should include(*included)
results.should_not include(*excluded)
end
end
+
+ context "chained onto a has_many association" do
+ with_model :Company do
+ model do
+ has_many :positions
+ end
+ end
+
+ with_model :Position do
+ table do |t|
+ t.string :title
+ t.belongs_to :company
+ end
+
+ model do
+ include PgSearch
+ pg_search_scope :search, :against => :title, :using => [:tsearch, :trigram]
+ end
+ end
+
+ # https://github.com/Casecommons/pg_search/issues/106
+ it "should handle numbers in a trigram query properly" do
+ company = Company.create!
+ another_company = Company.create!
+
+ included = [
+ Position.create!(company_id: company.id, title: "teller 1"),
+ Position.create!(company_id: company.id, title: "teller 2") # close enough
+ ]
+
+ excluded = [
+ Position.create!(company_id: nil, title: "teller 1"),
+ Position.create!(company_id: another_company.id, title: "teller 1"),
+ Position.create!(company_id: company.id, title: "penn 1")
+ ]
+
+ results = company.positions.search('teller 1')
+
+ results.should include(*included)
+ results.should_not include(*excluded)
+ end
+ end
end