Tengo una consulta que estoy usando para una búsqueda con: condiciones como esta:Rails La consulta SQL con% Wildcards funciona en SQLite pero no en PostgreSQL?
:conditions => ['family_name LIKE ? OR given_name LIKE ?', "%#{params[:search]}%", "%#{params[:search]}%"]
La consulta funciona bien localmente en SQLite, pero cuando empujo a Heroku en PostgreSQL, sólo los primeros trabajos% para ambos family_name y given_name. En otras palabras, coincidirá con una palabra clave que aparece al final de una palabra, pero no al principio ni al medio.
Ejemplo: Hay un registro existente con: FAMILY_NAME => "Washington" y: given_name => "George"
Una búsqueda de "hington" o "RGE" va a recuperar este registro. Una búsqueda de "Lavado" o "Geo" no lo hará.
Soy un nuevo usuario y soy bastante nuevo en los rieles. Gracias de antemano por tu ayuda.
Solución
Aquí está la solución que estoy utilizando:
:conditions => ['LOWER(family_name) LIKE ? OR LOWER(given_name) LIKE ?', "%#{params[:search].downcase}%", "%#{params[:search].downcase}%"]
La consulta de mayúsculas y minúsculas nunca se me pasó por la cabeza. Muchas gracias. Terminé configurando todo en minúsculas en la consulta porque es compatible con ambos tipos de bases de datos. Editar: Se agregó el código final a la pregunta. – studiofellow