module SaferRailsConsole::Patches::Sandbox::AutoRollback

Public Class Methods

handle_and_reraise_exception(e) click to toggle source
# File lib/safer_rails_console/patches/sandbox/auto_rollback.rb, line 15
def self.handle_and_reraise_exception(e)
  if e.message.include?('PG::ReadOnlySqlTransaction')
    puts color_text('An operation could not be completed due to read-only mode.', RED) # rubocop:disable Rails/Output
  else
    rollback_and_begin_new_transaction
  end

  raise e
end
rollback_and_begin_new_transaction() click to toggle source
# File lib/safer_rails_console/patches/sandbox/auto_rollback.rb, line 9
def self.rollback_and_begin_new_transaction
  connection = ::ActiveRecord::Base.connection
  connection.rollback_db_transaction
  connection.begin_db_transaction
end