Я хочу выполнить необработанный SQL-запрос как следующее:
ActiveRecord::Base.connection.execute(some_query);
Я могу зафиксировать какие-либо ошибки, которые происходят при выполнении запроса? Если да, как? Делает execute
возвраты что-нибудь? Это не говорит в документации.
Удачи
Вы можете исправить ошибки как обычно. Например:
begin
ActiveRecord::Base.connection.execute(some_query)
rescue
# do stuff with exception
end
Посмотрите на MySql (например) код адаптера , чтобы узнать, что происходит.
В этом случае execute
возвращает MySql :: Результат
объект.
Думаю, я нашел ответ. Оператор Execute возвращает ошибку, которую он получает из базы данных и может быть записан в переменной и отображен.
Метод выполнения
обычно реализуется соответствующими адаптерами базы данных и возвращает объект Result из соответствующих библиотек базы данных. Итак, если вы используете Mysql, возвращаемое значение будет иметь тип Mysql :: Result
.
Обычно в случае ошибки метод просто вызывает исключение, которое можно исправить.