Как откатить неудачную транзакцию в консоли rails с помощью pry - PullRequest
0 голосов
/ 12 ноября 2018

При тестировании новых 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. Почему этот код не работает?

...