Rails 2.3 : Nested Transactions
transaction(:requires_new => true)
If you want a transaction to be nested, you must explicitly add the :requires_new option.
User.transaction do User.create(:username => 'Admin') User.transaction(:requires_new => true) do User.create(:username => 'Regular') raise ActiveRecord::Rollback end end User.find(:all) # => Returns only Admin
Ruby on Rails 2.3 Release Notes - 4.2 Nested Transactions
Module: ActiveRecord::Transactions::ClassMethods