Я использую filterrifc gem в своем приложении rails для добавления фильтров в список индексов. У меня есть таблица пользователей с полями namename, фамилия и middlename.То, что я пытаюсь сделать, это поиск по всем этим столбцам в одном столбце поиска.Проблема, с которой я сталкиваюсь: когда я ищу Jimmy , я получаю список всех Jimmys по имени, фамилии и отчеству.Но когда я пытаюсь найти конкретный Джимми Уилсон , он не работает.Это просто показывает, что Джиммис не конкретный Джимми Уилсон .Пожалуйста, помогите мне найти проблему.
user.rb
scope :search_name, lambda { |query|
return nil if query.blank?
terms = query.downcase.split(/\s+/)
terms = terms.map { |e|
('%' + e + '%').gsub(/%+/, '%')
}
num_or_conds = 3
where(
terms.map { |term|
"(LOWER(users.lastname) LIKE ?) OR (LOWER(users.firstname) LIKE ?) OR (LOWER(users.middlename) LIKE ?)"
}.join(' AND '),
*terms.map { |e| [e] * num_or_conds }.flatten
)
}