如何使用Pry在Rails控制台中回滚失败的事务

时间:2018-11-11 22:59:36

标签: ruby-on-rails pry

在加载了active_record的Rails控制台中尝试新的pry查询时,如果查询导致异常,我通常不得不停止控制台并再次启动它,否则所有查询都会导致异常。我确实有一些代码可以解决此问题:

# .pryc
Pry.config.exception_handler = proc do |output, exception, _pry_|
  output.puts "#{exception.class}: #{exception.message}"
  output.puts exception.backtrace.first

  if exception.instance_of?(ActiveRecord::StatementInvalid) && exception.original_exception.is_a?(PG::Error)
    output.puts 'Rolling back transaction and starting a new one!'
    connection = ActiveRecord::Base.connection
    connection.rollback_db_transaction
    connection.begin_db_transaction
  end
end

但是它似乎已在Rails 5中停止工作。为什么此代码不起作用?

0 个答案:

没有答案
相关问题