diff options
author | Carlos Antonio da Silva <carlosantoniodasilva@gmail.com> | 2014-01-15 21:06:53 -0200 |
---|---|---|
committer | Carlos Antonio da Silva <carlosantoniodasilva@gmail.com> | 2014-01-15 21:10:23 -0200 |
commit | 885f3ae39020e95febfa402f7206f3d69fb29137 (patch) | |
tree | e537cb06cc7567b224edce6bbf7deaa1ac745aaa /activerecord/lib/active_record | |
parent | 1c88b363a3357699841d42ee5c39406ca004a172 (diff) | |
download | rails-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')
-rw-r--r-- | activerecord/lib/active_record/transactions.rb | 5 |
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 |