instance method
transaction
Ruby on Rails 2.2.3
Since v2.2.3Signature
transaction(start_db_transaction = true)
Wrap a block in a transaction. Returns result of block.
Parameters
-
start_db_transactionopt = true
Source
# File activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb, line 58
def transaction(start_db_transaction = true)
transaction_open = false
begin
if block_given?
if start_db_transaction
begin_db_transaction
transaction_open = true
end
yield
end
rescue Exception => database_transaction_rollback
if transaction_open
transaction_open = false
rollback_db_transaction
end
raise unless database_transaction_rollback.is_a? ActiveRecord::Rollback
end
ensure
if transaction_open
begin
commit_db_transaction
rescue Exception => database_transaction_rollback
rollback_db_transaction
raise
end
end
end
Defined in activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb line 58
· View on GitHub
· Improve this page
· Find usages on GitHub
Defined in ActiveRecord::ConnectionAdapters::DatabaseStatements