diff options
author | Michael Koziarski <michael@koziarski.com> | 2009-02-22 16:26:32 +1300 |
---|---|---|
committer | Michael Koziarski <michael@koziarski.com> | 2009-02-22 16:41:04 +1300 |
commit | 06040849b5a680c2a87893699580f9b9b80f72e4 (patch) | |
tree | c090c310d73d51ddd104b892d3750a5b49705860 | |
parent | 3248553d3299cbb723f1b4103c16bad7ecdd24a6 (diff) | |
download | rails-06040849b5a680c2a87893699580f9b9b80f72e4.tar.gz rails-06040849b5a680c2a87893699580f9b9b80f72e4.tar.bz2 rails-06040849b5a680c2a87893699580f9b9b80f72e4.zip |
Revert "Wrap calls to update_attributes in a transaction."
This caused failures on sqlite, sqlite3 and postgresql
This reverts commit fc09ebc669bd58f415f7d3ef932ef02dab821ab5.
[#922 state:reopened]
-rw-r--r-- | activerecord/lib/active_record/transactions.rb | 16 | ||||
-rw-r--r-- | activerecord/test/cases/transactions_test.rb | 34 |
2 files changed, 1 insertions, 49 deletions
diff --git a/activerecord/lib/active_record/transactions.rb b/activerecord/lib/active_record/transactions.rb index 9eabe7172b..0b6e52c79b 100644 --- a/activerecord/lib/active_record/transactions.rb +++ b/activerecord/lib/active_record/transactions.rb @@ -10,7 +10,7 @@ module ActiveRecord base.extend(ClassMethods) base.class_eval do - [:destroy, :save, :save!, :update_attribute, :update_attributes, :update_attributes!].each do |method| + [:destroy, :save, :save!].each do |method| alias_method_chain method, :transactions end end @@ -200,20 +200,6 @@ module ActiveRecord rollback_active_record_state! { self.class.transaction { save_without_transactions! } } end - def update_attribute_with_transactions(name, value) - with_transaction_returning_status(:update_attribute_without_transactions, name, value) - end - - def update_attributes_with_transactions(attributes) - with_transaction_returning_status(:update_attributes_without_transactions, attributes) - end - - def update_attributes_with_transactions!(attributes) - transaction do - update_attributes_without_transactions!(attributes) - end - end - # Reset id and @new_record if the transaction rolls back. def rollback_active_record_state! id_present = has_attribute?(self.class.primary_key) diff --git a/activerecord/test/cases/transactions_test.rb b/activerecord/test/cases/transactions_test.rb index bb8b9bb017..40abd935df 100644 --- a/activerecord/test/cases/transactions_test.rb +++ b/activerecord/test/cases/transactions_test.rb @@ -182,40 +182,6 @@ class TransactionTest < ActiveRecord::TestCase end end - def test_update_attribute_should_rollback_on_failure - Developer.before_save do - false - end - developer = Developer.first - developer.audit_logs.clear - 2.times { developer.audit_logs.create(:message => 'message') } - assert_equal 2, developer.audit_logs.size - status = developer.update_attribute(:audit_log_ids, []) - assert !status - assert_equal 2, developer.audit_logs(true).size - end - - def test_update_attributes_should_rollback_on_failure - developer = Developer.first - developer.audit_logs.clear - 2.times { developer.audit_logs.create(:message => 'message') } - assert_equal 2, developer.audit_logs.size - status = developer.update_attributes(:audit_log_ids => [], :name => nil) - assert !status - assert_equal 2, developer.audit_logs(true).size - end - - def test_update_attributes_should_rollback_on_failure! - developer = Developer.first - developer.audit_logs.clear - 2.times { developer.audit_logs.create(:message => 'message') } - assert_equal 2, developer.audit_logs.size - assert_raise(ActiveRecord::RecordInvalid) do - developer.update_attributes!(:audit_log_ids => [], :name => nil) - end - assert_equal 2, developer.audit_logs(true).size - end - def test_nested_explicit_transactions Topic.transaction do Topic.transaction do |