Когда вы обходите ActiveRecord, вам почти все приходится делать вручную. Я полагаю, у вас есть веские причины для этого.
ActiveRecord :: Base имеет следующие методы: sanitize_sql_for_assignments (для набора) и sanitize_sql_for_conditions (для выбора). Есть несколько других sanitize_sql_ *, на которые, вероятно, стоит обратить внимание. Оба принимают хеш (использует ключи как имена столбцов) или строку.
Я могу ошибаться, но для получения записей и пропуска ActiveRecord, я думаю, вы используете ActiveRecord :: Base.connection.execute (sql), который должен возвращать объекты из коннектора вашей базы данных. Проверяет документы на разъем, чтобы увидеть, что возвращается и как с ним работать.
Что касается лучших практик, извините, я не могу вам помочь: -)