diff --git a/actionpack/lib/action_dispatch/http/parameters.rb b/actionpack/lib/action_dispatch/http/parameters.rb index 3867e514a2d623e428f95ebb99e2f535e9acdcec..27fadb708e89d81eee584ff6c890d650bc1bc470 100644 --- a/actionpack/lib/action_dispatch/http/parameters.rb +++ b/actionpack/lib/action_dispatch/http/parameters.rb @@ -48,16 +48,16 @@ def path_parameters private - def parse_formatted_parameters(request, parsers) - return yield if request.content_length.zero? + def parse_formatted_parameters(parsers) + return yield if content_length.zero? - strategy = parsers.fetch(request.content_mime_type) { return yield } + strategy = parsers.fetch(content_mime_type) { return yield } begin - strategy.call(request.raw_post) + strategy.call(raw_post) rescue => e # JSON or Ruby code block errors my_logger = logger || ActiveSupport::Logger.new($stderr) - my_logger.debug "Error occurred while parsing request parameters.\nContents:\n\n#{request.raw_post}" + my_logger.debug "Error occurred while parsing request parameters.\nContents:\n\n#{raw_post}" raise ParamsParser::ParseError.new(e.message, e) end diff --git a/actionpack/lib/action_dispatch/http/request.rb b/actionpack/lib/action_dispatch/http/request.rb index cb5951061348dc737b1f775c09be593c9f606faf..eaa7e88b34303bcea3c8b80a4a02fb5e81f44f93 100644 --- a/actionpack/lib/action_dispatch/http/request.rb +++ b/actionpack/lib/action_dispatch/http/request.rb @@ -348,7 +348,7 @@ def GET # Override Rack's POST method to support indifferent access def POST fetch_header("action_dispatch.request.request_parameters") do - pr = parse_formatted_parameters(self, params_parsers) do |params| + pr = parse_formatted_parameters(params_parsers) do |params| super || {} end self.request_parameters = Request::Utils.normalize_encode_params(pr)