From c75153d280e70e501c9044286ff52e50fe29a054 Mon Sep 17 00:00:00 2001 From: Aaron Patterson Date: Tue, 21 Jul 2015 15:04:19 -0700 Subject: [PATCH] rearrange logic to use positive branches only hashes are converted to parameter objects, so lets add a branch for them. This also removes a is_a? test for Parameters so we can be abstracted from the class. --- .../lib/action_controller/metal/strong_parameters.rb | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/actionpack/lib/action_controller/metal/strong_parameters.rb b/actionpack/lib/action_controller/metal/strong_parameters.rb index cf6a64009ffa7..7aa61cff072d6 100644 --- a/actionpack/lib/action_controller/metal/strong_parameters.rb +++ b/actionpack/lib/action_controller/metal/strong_parameters.rb @@ -562,14 +562,16 @@ def convert_hashes_to_parameters(key, value, assign_if_converted=true) end def convert_value_to_parameters(value) - if value.is_a?(Array) && !converted_arrays.member?(value) + case value + when Array + return value if converted_arrays.member?(value) converted = value.map { |_| convert_value_to_parameters(_) } converted_arrays << converted converted - elsif value.is_a?(Parameters) || !value.is_a?(Hash) - value - else + when Hash self.class.new(value) + else + value end end