For performance reasons, I need to write a new method in my Rails model that executes some arbitrary SQL:
UPDATE table
SET col1 = ? AND col2 = ?
WHERE id = ?
I understand I can use ActiveRecord::Base.connection.execute
or ActiveRecord::Base.connection.update
with a string of SQL to get the results I need, but what is the proper procedure for substituting the parameter placeholders (?
) with the actual parameter values? Is there a Rails method for interpolating parameters into a SQL statement, or should it just be done by manual interpolation? The latter seems unsafe...