diff options
Diffstat (limited to 'actionpack')
-rw-r--r-- | actionpack/CHANGELOG | 2 | ||||
-rwxr-xr-x | actionpack/lib/action_controller/cgi_ext/cgi_methods.rb | 1 | ||||
-rwxr-xr-x | actionpack/test/controller/cgi_test.rb | 6 |
3 files changed, 9 insertions, 0 deletions
diff --git a/actionpack/CHANGELOG b/actionpack/CHANGELOG index 7eb69f4fbd..9a75a3852c 100644 --- a/actionpack/CHANGELOG +++ b/actionpack/CHANGELOG @@ -1,5 +1,7 @@ *SVN* +* Fix NoMethodError when parsing params like &&. [Adam Greenfield] + * Fix flip flopped logic in docs for url_for's :only_path option. Closes #4998. [esad@esse.at] * form.text_area handles the :size option just like the original text_area (:size => '60x10' becomes cols="60" rows="10"). [Jeremy Kemper] diff --git a/actionpack/lib/action_controller/cgi_ext/cgi_methods.rb b/actionpack/lib/action_controller/cgi_ext/cgi_methods.rb index 941646c530..37eb8d5cd7 100755 --- a/actionpack/lib/action_controller/cgi_ext/cgi_methods.rb +++ b/actionpack/lib/action_controller/cgi_ext/cgi_methods.rb @@ -45,6 +45,7 @@ class CGIMethods #:nodoc: parsed_params = {} for key, value in params + next if key.nil? value = [value] if key =~ /.*\[\]$/ unless key.include?('[') # much faster to test for the most common case first (GET) diff --git a/actionpack/test/controller/cgi_test.rb b/actionpack/test/controller/cgi_test.rb index ddf68fdf5b..06f721997d 100755 --- a/actionpack/test/controller/cgi_test.rb +++ b/actionpack/test/controller/cgi_test.rb @@ -227,6 +227,12 @@ class CGITest < Test::Unit::TestCase expected = { "a/b@" => { "c" => { "d[e" => ["f"] }}} assert_equal expected, CGIMethods.parse_request_parameters(input) end + + def test_parse_params_with_nil_key + input = { nil => nil, "test2" => %w(value1) } + expected = { "test2" => "value1" } + assert_equal expected, CGIMethods.parse_request_parameters(input) + end end class MultipartCGITest < Test::Unit::TestCase |