method

transaction

transaction(*objects, &block)
public

No documentation available.

# File activerecord/lib/active_record/transactions.rb, line 83
      def transaction(*objects, &block)
        previous_handler = trap('TERM') { raise TransactionError, "Transaction aborted" }
        lock_mutex
        
        begin
          objects.each { |o| o.extend(Transaction::Simple) }
          objects.each { |o| o.start_transaction }

          result = connection.transaction(Thread.current['start_db_transaction'], &block)

          objects.each { |o| o.commit_transaction }
          return result
        rescue Exception => object_transaction_rollback
          objects.each { |o| o.abort_transaction }
          raise
        ensure
          unlock_mutex
          trap('TERM', previous_handler)
        end
      end

1Note

Information on 'ModelName.transaction'

george ยท Sep 11, 20084 thanks

If you are looking for information about:

ModelName.transaction do
...
end

or

transaction do
...
end

see ActiveRecord::Transactions::ClassMethods