From 9340d189cbc6fe9ac37068bd624b2a8d72de7822 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javi=20Mart=C3=ADn?= Date: Sun, 20 Oct 2019 13:35:53 +0200 Subject: [PATCH] Fix investments search with numbers in their title --- app/models/budget/investment.rb | 6 +++--- spec/models/budget/investment_spec.rb | 6 ++++++ 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/app/models/budget/investment.rb b/app/models/budget/investment.rb index 5a8721219..09d0c6733 100644 --- a/app/models/budget/investment.rb +++ b/app/models/budget/investment.rb @@ -201,10 +201,10 @@ class Budget end def self.search_by_title_or_id(title_or_id) - return where(id: title_or_id) if title_or_id =~ /^[0-9]+$/ + with_joins = with_translations(Globalize.fallbacks(I18n.locale)) - with_translations(Globalize.fallbacks(I18n.locale)). - where("budget_investment_translations.title ILIKE ?", "%#{title_or_id}%") + with_joins.where(id: title_or_id). + or(with_joins.where("budget_investment_translations.title ILIKE ?", "%#{title_or_id}%")) end def searchable_values diff --git a/spec/models/budget/investment_spec.rb b/spec/models/budget/investment_spec.rb index dfea5c9d0..d01a10f1d 100644 --- a/spec/models/budget/investment_spec.rb +++ b/spec/models/budget/investment_spec.rb @@ -665,6 +665,12 @@ describe Budget::Investment do expect(Budget::Investment.search_by_title_or_id("Investment title")).to eq([investment]) end + + it "finds investments with numbers in their title" do + investment = create(:budget_investment, title: "99 red balloons") + + expect(Budget::Investment.search_by_title_or_id("99")).to eq([investment]) + end end end