maeshimaの日記

メモ書きです

nested transaction

どんな機能か忘れてたけど下記のコード見て理解。requires_newは内側のtransactionだという印。

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) # => :username => 'Admin' だけが返る