diff --git a/app/models/stock.rb b/app/models/stock.rb index 2a11eaac..59b8f2dc 100644 --- a/app/models/stock.rb +++ b/app/models/stock.rb @@ -35,7 +35,11 @@ class Stock < ApplicationRecord scope :search, ->(query) { return nil if query.blank? || query.length < 2 - sanitized_query = query.split.map { |term| "#{term.gsub(/[()&|!:*]/, '')}:*" }.join(" & ") + sanitized_query = query.split + .map { |term| term.gsub(/[()&|!:*]/, '') } + .reject(&:blank?) + .map { |term| "#{term}:*" } + .join(" & ") select("stocks.*, ts_rank_cd(search_vector, to_tsquery('simple', $1)) AS rank") .where("search_vector @@ to_tsquery('simple', :q)", q: sanitized_query)