2012-03-25 14 views

Respuesta

25

Puede utilizar ILIKE en el que en vez:

Konkurrencer.where("title ILIKE ?", "%#{params[:q]}%").limit(4) 

de Doc:

La palabra clave ILIKE se puede utilizar en lugar de Cómo podemos hacer que el partido entre mayúsculas y minúsculas según el locale activa. Esto no está en el estándar de SQL pero es una extensión de PostgreSQL.

+0

acaba de encontrar http://www.postgresql.org/docs/8.0/static/ functions-matching.html –

+4

No utilice manuales de versiones desactualizadas. Reemplace el "8.0" en su enlace con su número de versión correspondiente (o use "current" en su lugar) –

+0

@a_horse_with_no_name Gracias por señalar eso ... hecho para la respuesta – ScottJShea

2

Para usar mayúsculas o minúsculas en la búsqueda con PostgreSQL usando INFERIOR ...

Ejemplo:

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 
+0

Buena solución, porque funciona con PostgreSQL y Sqlite. No probé con MySQL. En mi caso, tuve que descifrar el término de búsqueda, por inst. "% # {client.downcase}% –

Cuestiones relacionadas