diff options
Diffstat (limited to 'actionpack/lib/action_controller/cgi_process.rb')
-rw-r--r-- | actionpack/lib/action_controller/cgi_process.rb | 16 |
1 files changed, 5 insertions, 11 deletions
diff --git a/actionpack/lib/action_controller/cgi_process.rb b/actionpack/lib/action_controller/cgi_process.rb index 40a533ad6f..dcfa39fc03 100644 --- a/actionpack/lib/action_controller/cgi_process.rb +++ b/actionpack/lib/action_controller/cgi_process.rb @@ -47,12 +47,11 @@ module ActionController #:nodoc: end def query_string - if (qs = @cgi.query_string) && !qs.empty? + qs = @cgi.query_string + if !qs.blank? qs elsif uri = @env['REQUEST_URI'] - parts = uri.split('?') - parts.shift - parts.join('?') + uri.split('?', 2).last else @env['QUERY_STRING'] || '' end @@ -69,16 +68,11 @@ module ActionController #:nodoc: end def query_parameters - @query_parameters ||= CGI.parse_query_parameters(query_string) + @query_parameters ||= self.class.parse_query_parameters(query_string) end def request_parameters - @request_parameters ||= - if ActionController::Base.param_parsers.has_key?(content_type) - self.class.parse_formatted_request_parameters(content_type, body.read) - else - CGI.parse_request_parameters(@cgi.params) - end + @request_parameters ||= self.class.parse_formatted_request_parameters(body, content_type_with_parameters, content_length, env) end def cookies |