Al buscar en la base de datos MYSQL una aplicación Rails 2.3.14, necesito escapar de la cadena de búsqueda de forma adecuada para poder buscar cadenas que contengan comillas simples (apóstrofes). ¿Cuál es la mejor manera de hacer esto? Estoy usando la gema mysql
, en caso de que eso importe.¿Cómo escapar para consultas MYSQL de Ruby on Rails?
Respuesta
Se puede utilizar el método de quote
ActiveRecord (por ejemplo ActiveRecord::Base.connection.quote("string with ' apostrophe")
), pero los métodos de consulta de ActiveRecord ya escapar de su SQL para usted. Por ejemplo:
a = "string with ' apostrophe"
ModelName.where("field1 = ?", a)
va a cambiar "la cadena con 'apóstrofe" a "la cadena con '' apóstrofe"
Al usar la gema mysql
, obtiene el método Mysql.escape_string()
. Utilice la siguiente manera:
search_terms = Mysql.escape_string("it's working!")
conditions = [ "table1.name LIKE '%#{search_terms}%'" ]
# use conditions for MYSQL query as appropriate
donde es algo como esto para postgres ?? –
rieles quotes strings de la siguiente manera:
# Quotes a string, escaping any ' (single quote) and \ (backslash) characters.
def quote_string(s)
s.gsub(/\\/, '\&\&').gsub(/'/, "''") # ' (for ruby-mode)
end
Esto funcionó con postgresql –
Esto es genial, gracias – jahrichie
- 1. Ruby on Rails - Dinámica de consultas SQL
- 2. ¿Cómo funciona Ruby on Rails?
- 3. Ruby on rails connection problem
- 4. Intellisense para Ruby, Ruby on Rails, Python
- 5. Ruby on Rails MySQL # 08S01Bad handshake - downgrade MySQL?
- 6. Cómo dominar Ruby on Rails
- 7. Ruby on Rails Rake Error
- 8. Ruby on Rails Switch
- 9. Ruby vs. Ruby on Rails
- 10. Ruby on Rails will_paginate
- 11. Ruby on Rails enviar
- 12. Configuración de Vim para Ruby on Rails
- 13. Docsplit Ruby on Rails
- 14. Usos de Ruby on Rails
- 15. Acción de transacción con Ruby On Rails
- 16. Ruby on Rails: descargable
- 17. Configurar Notepad ++ para ruby on rails
- 18. Plugin de Ruby on Rails para mostrar números de línea en el registro para consultas SQL
- 19. Búsqueda de texto completo de MySQL en Ruby on Rails
- 20. Ruby On Rails: pluralizar para otros idiomas
- 21. Base de datos de objetos para Ruby on Rails
- 22. Uso de vistas de MySQL en una aplicación de Ruby on Rails para mejorar el rendimiento
- 23. Instalación de MySQL en Ubuntu con ruby on rails [ERROR]
- 24. "El servidor MySQL se ha ido" con Ruby on Rails
- 25. Ruby on Rails field average?
- 26. Ruby on rails application root
- 27. Ruby on Rails: formulario select
- 28. Ruby on Rails función para este
- 29. SAML 2.0 SSO para Ruby on Rails?
- 30. ¿Hay alguna prueba para Ruby on Rails?
Esto es bueno para consultas cortas, pero para consultas más complejas, en realidad es más fácil usar el SQL más directamente. Estoy mirando un caso en el que busco en cinco tablas diferentes, y es muy difícil rastrear qué variable se corresponde con qué parte de la consulta utiliza esta sintaxis. – joanwolk
Buscar en los ámbitos. Le permiten dividir su consulta en fragmentos lógicos, y luego encadenarlos según sea necesario. Es mucho más limpio – Angelo
Tenemos ámbitos. Separadamente: la aplicación en cuestión también utiliza consultas SQL sin procesar en lugar de los métodos Rails SQL como una consideración de rendimiento, por lo que no cambiaré este código a los métodos de ActiveRecord. – joanwolk