Class: FullSearch::ExactMatch
- Inherits:
-
Object
- Object
- FullSearch::ExactMatch
- Defined in:
- lib/full_search/exact_match.rb
Class Method Summary collapse
Class Method Details
.ids_for(model, query, filters) ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/full_search/exact_match.rb', line 5 def self.ids_for(model, query, filters) dsl = model.full_search_dsl return [] if dsl.exact_matches.empty? cleaned = query.to_s.strip return [] if cleaned.empty? relation = model.all filters.each { |name, value| relation = relation.where(name => value) } conditions = dsl.exact_matches.map do |em| relation.model.arel_table[em.name].eq(cleaned) end relation.where(conditions.reduce(:or)).pluck(:id) end |