Aus Performance-Gründen Schienen, ich brauche eine neue Methode in meinem Rails-Modell zu schreiben, die eine beliebige SQL ausführt:Wie beliebigen parametrisierte SQL ausführt in
UPDATE table
SET col1 = ? AND col2 = ?
WHERE id = ?
Ich verstehe ich ActiveRecord::Base.connection.execute
oder ActiveRecord::Base.connection.update
mit einem String verwenden kann von SQL, um die Ergebnisse zu erhalten, die ich brauche, aber was ist die richtige Prozedur, um die Parameter-Platzhalter (?
) durch die tatsächlichen Parameterwerte zu ersetzen? Gibt es eine Rails-Methode zum Interpolieren von Parametern in eine SQL-Anweisung oder sollte sie nur manuell interpoliert werden? Letzteres scheint unsicher ...
Überprüfen Sie diese Frage auch: http://stackoverflow.com/questions/4483049/how-to-execute-a-raw-update-sql-with-dynamic-binding-in-rails/4484549#4484549. –
Ich zweitens Brians Kommentar - der obige Link scheint die gleiche grundlegende Frage zu sein. –