Как зафиксировать ошибки от ActiveRecord:: Base.connection.execute в направляющих?

Я хочу выполнить необработанный SQL-запрос как следующее:

ActiveRecord::Base.connection.execute(some_query);

Я могу зафиксировать какие-либо ошибки, которые происходят при выполнении запроса? Если да, как? Делает execute возвраты что-нибудь? Это не говорит в документации.

Удачи

9
задан Katherine Shimmins 9 October 2012 в 10:17
поделиться

3 ответа

Вы можете исправить ошибки как обычно. Например:

begin
  ActiveRecord::Base.connection.execute(some_query)
rescue
  # do stuff with exception
end

Посмотрите на MySql (например) код адаптера , чтобы узнать, что происходит.

В этом случае execute возвращает MySql :: Результат объект.

6
ответ дан 4 December 2019 в 20:24
поделиться

Думаю, я нашел ответ. Оператор Execute возвращает ошибку, которую он получает из базы данных и может быть записан в переменной и отображен.

1
ответ дан 4 December 2019 в 20:24
поделиться

Метод выполнения обычно реализуется соответствующими адаптерами базы данных и возвращает объект Result из соответствующих библиотек базы данных. Итак, если вы используете Mysql, возвращаемое значение будет иметь тип Mysql :: Result .

Обычно в случае ошибки метод просто вызывает исключение, которое можно исправить.

4
ответ дан 4 December 2019 в 20:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: