Por motivos de rendimiento, tengo que escribir un nuevo método en mi modelo de rieles que se ejecuta alguna SQL arbitrario:cómo ejecutar SQL con parámetros arbitrarios en los carriles
UPDATE table
SET col1 = ? AND col2 = ?
WHERE id = ?
entiendo que puedo utilizar ActiveRecord::Base.connection.execute
o ActiveRecord::Base.connection.update
con una cadena de SQL para obtener los resultados que necesito, pero ¿cuál es el procedimiento adecuado para sustituir los marcadores de posición de los parámetros (?
) con los valores de los parámetros reales? ¿Existe un método de Rails para interpolar parámetros en una declaración de SQL, o debería simplemente hacerse por interpolación manual? Este último parece insegura ...
Consulte esta pregunta también: http://stackoverflow.com/questions/4483049/how-to-execute-a-raw-update-sql-with-dynamic-binding-in-rasils/4484549#4484549. –
En segundo lugar el comentario de Brian: el enlace de arriba parece ser la misma pregunta básica. –