diff options
| author | Mark Reginald James <mrj@advancedcontrols.com.au> | 2008-12-28 01:15:48 +0000 | 
|---|---|---|
| committer | Frederick Cheung <frederick.cheung@gmail.com> | 2008-12-28 01:15:48 +0000 | 
| commit | 5138f755ff31a8f317d649a6f256c74bc371db70 (patch) | |
| tree | ac50b3fb5b021e36826ceca1097e3eb101de94c3 /actionpack/lib/action_controller | |
| parent | afdec83ed543e904b495d3225b6401101ea7ba6c (diff) | |
| download | rails-5138f755ff31a8f317d649a6f256c74bc371db70.tar.gz rails-5138f755ff31a8f317d649a6f256c74bc371db70.tar.bz2 rails-5138f755ff31a8f317d649a6f256c74bc371db70.zip  | |
Fixed incorrect parsing of query parameters with mixed-depth nesting inside an array [#1622 state:resolved]
Signed-off-by: Frederick Cheung <frederick.cheung@gmail.com>
Diffstat (limited to 'actionpack/lib/action_controller')
| -rw-r--r-- | actionpack/lib/action_controller/url_encoded_pair_parser.rb | 9 | 
1 files changed, 4 insertions, 5 deletions
diff --git a/actionpack/lib/action_controller/url_encoded_pair_parser.rb b/actionpack/lib/action_controller/url_encoded_pair_parser.rb index bea96c711d..9883ad0d85 100644 --- a/actionpack/lib/action_controller/url_encoded_pair_parser.rb +++ b/actionpack/lib/action_controller/url_encoded_pair_parser.rb @@ -70,11 +70,12 @@ module ActionController                top[-1][key] = value              else                top << {key => value}.with_indifferent_access -              push top.last -              value = top[key]              end +            push top.last +            return top[key]            else              top << value +            return value            end          elsif top.is_a? Hash            key = CGI.unescape(key) @@ -84,12 +85,10 @@ module ActionController          else            raise ArgumentError, "Don't know what to do: top is #{top.inspect}"          end - -        return value        end        def type_conflict!(klass, value)          raise TypeError, "Conflicting types for parameter containers. Expected an instance of #{klass} but found an instance of #{value.class}. This can be caused by colliding Array and Hash parameters like qs[]=value&qs[key]=value. (The parameters received were #{value.inspect}.)"        end    end -end
\ No newline at end of file +end  | 
