如何从Rails中的ActiveRecord :: Base.connection.execute中捕获错误?

Pri*_*ank 9 ruby activerecord ruby-on-rails

我想运行原始SQL查询,如下所示:

ActiveRecord::Base.connection.execute(some_query);
Run Code Online (Sandbox Code Playgroud)

我可以捕获执行查询时发生的任何错误吗?如果有,怎么样?什么execute回报?它没有在文档中说明.

干杯

And*_*art 6

您可以正常拯救错误.例如:

begin
  ActiveRecord::Base.connection.execute(some_query)
rescue
  # do stuff with exception
end
Run Code Online (Sandbox Code Playgroud)

看看MySql(例如)适配器的代码,看看发生了什么.

在这种情况下,execute返回一个MySql::Result对象.