Active Record Real Transaction
Methods
Instance Public methods
commit()
📝 Source code
# File activerecord/lib/active_record/connection_adapters/abstract/transaction.rb, line 487
def commit
if materialized?
connection.commit_db_transaction
connection.reset_isolation_level if isolation_level
end
@state.full_commit!
@instrumenter.finish(:commit) if materialized?
end
🔎 See on GitHub
materialize!()
📝 Source code
# File activerecord/lib/active_record/connection_adapters/abstract/transaction.rb, line 450
def materialize!
if joinable?
if isolation_level
connection.begin_isolated_db_transaction(isolation_level)
else
connection.begin_db_transaction
end
else
connection.begin_deferred_transaction(isolation_level)
end
super
end
🔎 See on GitHub
restart()
📝 Source code
# File activerecord/lib/active_record/connection_adapters/abstract/transaction.rb, line 464
def restart
return unless materialized?
@instrumenter.finish(:restart)
if connection.supports_restart_db_transaction?
@instrumenter.start
connection.restart_db_transaction
else
connection.rollback_db_transaction
materialize!
end
end
🔎 See on GitHub
rollback()
📝 Source code
# File activerecord/lib/active_record/connection_adapters/abstract/transaction.rb, line 478
def rollback
if materialized?
connection.rollback_db_transaction
connection.reset_isolation_level if isolation_level
end
@state.full_rollback!
@instrumenter.finish(:rollback) if materialized?
end
🔎 See on GitHub