aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/transactions.rb
diff options
context:
space:
mode:
authorCarlos Antonio da Silva <carlosantoniodasilva@gmail.com>2014-01-15 21:06:53 -0200
committerCarlos Antonio da Silva <carlosantoniodasilva@gmail.com>2014-01-15 21:10:23 -0200
commit885f3ae39020e95febfa402f7206f3d69fb29137 (patch)
treee537cb06cc7567b224edce6bbf7deaa1ac745aaa /activerecord/lib/active_record/transactions.rb
parent1c88b363a3357699841d42ee5c39406ca004a172 (diff)
downloadrails-885f3ae39020e95febfa402f7206f3d69fb29137.tar.gz
rails-885f3ae39020e95febfa402f7206f3d69fb29137.tar.bz2
rails-885f3ae39020e95febfa402f7206f3d69fb29137.zip
Avoid converting :on option to array twice when defining commit/rollback callbacks
Diffstat (limited to 'activerecord/lib/active_record/transactions.rb')
-rw-r--r--activerecord/lib/active_record/transactions.rb5
1 files changed, 2 insertions, 3 deletions
diff --git a/activerecord/lib/active_record/transactions.rb b/activerecord/lib/active_record/transactions.rb
index 45313b5e75..5423e689b9 100644
--- a/activerecord/lib/active_record/transactions.rb
+++ b/activerecord/lib/active_record/transactions.rb
@@ -243,15 +243,14 @@ module ActiveRecord
def set_options_for_callbacks!(args)
options = args.last
if options.is_a?(Hash) && options[:on]
- assert_valid_transaction_action(options[:on])
- options[:if] = Array(options[:if])
fire_on = Array(options[:on])
+ assert_valid_transaction_action(fire_on)
+ options[:if] = Array(options[:if])
options[:if] << "transaction_include_any_action?(#{fire_on})"
end
end
def assert_valid_transaction_action(actions)
- actions = Array(actions)
if (actions - ACTIONS).any?
raise ArgumentError, ":on conditions for after_commit and after_rollback callbacks have to be one of #{ACTIONS.join(",")}"
end