在加载了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中停止工作。为什么此代码不起作用?