diff options
author | Jonathan Viney <jonathan@jonathan-desktop.(none)> | 2008-08-31 21:09:16 +1200 |
---|---|---|
committer | Hongli Lai (Phusion) <hongli@phusion.nl> | 2008-11-03 20:55:26 +0100 |
commit | b3420f5a2e3c38e5efc2b3d995354c39af09569e (patch) | |
tree | 6d24a360aa1407d2653ea178e0e191f82a444254 /activerecord/lib/active_record/transactions.rb | |
parent | 18bf7b421d55c60029289edef1df409a58d021e4 (diff) | |
download | rails-b3420f5a2e3c38e5efc2b3d995354c39af09569e.tar.gz rails-b3420f5a2e3c38e5efc2b3d995354c39af09569e.tar.bz2 rails-b3420f5a2e3c38e5efc2b3d995354c39af09569e.zip |
Implement savepoints.
Diffstat (limited to 'activerecord/lib/active_record/transactions.rb')
-rw-r--r-- | activerecord/lib/active_record/transactions.rb | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/activerecord/lib/active_record/transactions.rb b/activerecord/lib/active_record/transactions.rb index 27b5aca18f..56b62474d9 100644 --- a/activerecord/lib/active_record/transactions.rb +++ b/activerecord/lib/active_record/transactions.rb @@ -122,14 +122,10 @@ module ActiveRecord # One should restart the entire transaction if a StatementError occurred. module ClassMethods # See ActiveRecord::Transactions::ClassMethods for detailed documentation. - def transaction(&block) - connection.increment_open_transactions - - begin - connection.transaction(connection.open_transactions == 1, &block) - ensure - connection.decrement_open_transactions - end + def transaction(options = {}, &block) + options.assert_valid_keys :force + + connection.transaction(options[:force], &block) end end |