Rails PostgreSQL без учета регистра поиск с LIKE
У меня есть это в мой контроллер:
Konkurrencer.where("title LIKE ?", "%#{params[:q]}%").limit(4)
Я думаю, что этот запрос чувствителен к регистру. Он не должен учитывать регистр.
2 ответов
можно использовать ILIKE
В, где вместо:
Konkurrencer.where("title ILIKE ?", "%#{params[:q]}%").limit(4)
от doc:
ключевое слово ILIKE можно использовать вместо LIKE, чтобы сделать матч регистр в соответствии с действующими язык. Это не в SQL standard, но является расширением PostgreSQL.
для использования без учета регистра в поиске с PostgreSQL, используя LOWER...
пример:
def self.search(client, date_start, date_end)
joins(:customer).where("LOWER(customers.name) LIKE ? AND date >= ? AND date <= ?", "%#{client}%", date_start, date_end)
end