Я использую фильтр filterrfic для поиска организации в базе данных.Проблема, с которой я сталкиваюсь, заключается в том, что, когда я ищу организацию, название которой начинается с «Националь», я получаю список всех организаций, в названии которых есть «Националь».Все, что я хочу, это чтобы он просто искал первое слово в поле name_of_organisation.
organisation.rb
def self.search(search)
if search
where('name_of_organisation LIKE ?', "%#{search}%")
else
all
end
end
filterrific(
available_filters: [
:search_query
]
)
scope :search_query, lambda { |query|
return nil if query.blank?
terms = query.downcase.split(/\s+/)
terms = terms.map { |e|
(e.gsub('*', '%') + '%').gsub(/%+/, '%')
}
num_or_conds = 1
where(
terms.map { |term|
"(LOWER(organisations.name_of_organisation) LIKE ?)
}.join(' AND '),
*terms.map { |e| [e] * num_or_conds }.flatten
)
}
В настоящее время он отображает всю Организацию следующим образом:Serivce
Но я хочу, чтобы он выполнял поиск только по первому слову поля name_of_organisation и отображал только социальную службу Nation