Module ActiveRecord::Transactions
In: vendor/rails/activerecord/lib/active_record/transactions.rb

Methods

Classes and Modules

Module ActiveRecord::Transactions::ClassMethods

Public Class methods

[Source]

    # File vendor/rails/activerecord/lib/active_record/transactions.rb, line 9
 9:     def self.included(base)
10:       base.extend(ClassMethods)
11: 
12:       base.class_eval do
13:         [:destroy, :save, :save!].each do |method|
14:           alias_method_chain method, :transactions
15:         end
16:       end
17:     end

Public Instance methods

Reset id and @new_record if the transaction rolls back.

[Source]

     # File vendor/rails/activerecord/lib/active_record/transactions.rb, line 154
154:     def rollback_active_record_state!
155:       id_present = has_attribute?(self.class.primary_key)
156:       previous_id = id
157:       previous_new_record = new_record?
158:       yield
159:     rescue Exception
160:       @new_record = previous_new_record
161:       if id_present
162:         self.id = previous_id
163:       else
164:         @attributes.delete(self.class.primary_key)
165:         @attributes_cache.delete(self.class.primary_key)
166:       end
167:       raise
168:     end

See ActiveRecord::Transactions::ClassMethods for detailed documentation.

[Source]

     # File vendor/rails/activerecord/lib/active_record/transactions.rb, line 137
137:     def transaction(&block)
138:       self.class.transaction(&block)
139:     end

Executes method within a transaction and captures its return value as a status flag. If the status is true the transaction is committed, otherwise a ROLLBACK is issued. In any case the status flag is returned.

This method is available within the context of an ActiveRecord::Base instance.

[Source]

     # File vendor/rails/activerecord/lib/active_record/transactions.rb, line 176
176:     def with_transaction_returning_status(method, *args)
177:       status = nil
178:       self.class.transaction do
179:         status = send(method, *args)
180:         raise ActiveRecord::Rollback unless status
181:       end
182:       status
183:     end

[Validate]