ruby-on-rails - left - rails sql query
¿Puedes usar activerecord para encontrar una subcadena de un campo?(buscador de palabras clave rápido y sucio) (3)
La sintaxis de la base de datos Postgres sería:
YourModelName.where("yourFieldName like ?", "%" + yourSearchTerm + "%")
Supongamos que una base de datos contiene un campo ''keywords'' y los registros de muestra incluyen: "pipe wrench", "llave inglesa", "crescent wrench", "crescent roll", "monkey bars".
¿Hay alguna forma en activerecord para encontrar los registros donde el campo de palabra clave contiene la subcadena "creciente"?
(Es solo una búsqueda rápida y sucia para un prototipo de concepto rápido)
Sí, solo usa una declaración LIKE en MySQL.
En Rails 2.x:
Table.find(:all, :conditions => [''keywords LIKE ?'', ''%crescent%''])
En Rails 3.x:
Table.where(''keywords LIKE ?'', ''%crescent%'').all
Todo depende de tu DB. ¿Es Postgres? MySQL? MongoDB? ¿Algo más?
Con Postgres, podrías usar algo como:
Rails 2.x => Model.find(:all, :conditions=>["models.keywords ~= ?", ''crescent''])
Rails 3.x => Model.where("models.keywords ~= ?", ''crescent'')
Solo tiene que encontrar la sintaxis correcta para su versión de DB / Rails / ActiveRecord.