method
begin_transaction
v6.0.0 -
Show latest stable
- Class:
ActiveRecord::ConnectionAdapters::TransactionManager
begin_transaction(options = {})public
No documentation available.
# File activerecord/lib/active_record/connection_adapters/abstract/transaction.rb, line 205
def begin_transaction(options = {})
@connection.lock.synchronize do
run_commit_callbacks = !current_transaction.joinable?
transaction =
if @stack.empty?
RealTransaction.new(@connection, options, run_commit_callbacks: run_commit_callbacks)
else
SavepointTransaction.new(@connection, "active_record_#{@stack.size}", @stack.last, options,
run_commit_callbacks: run_commit_callbacks)
end
if @connection.supports_lazy_transactions? && lazy_transactions_enabled? && options[:_lazy] != false
@has_unmaterialized_transactions = true
else
transaction.materialize!
end
@stack.push(transaction)
transaction
end
end