module ActionDispatch::Http::Parameters

def log_parse_error_once

def log_parse_error_once
  @parse_error_logged ||= begin
    parse_logger = logger || ActiveSupport::Logger.new($stderr)
    parse_logger.debug <<~MSG.chomp
      Error occurred while parsing request parameters.
      Contents:
      #{raw_post}
    MSG
  end
end

def parameters

Returns both GET and POST \parameters in a single hash.
def parameters
  params = get_header("action_dispatch.request.parameters")
  return params if params
  params = begin
             request_parameters.merge(query_parameters)
           rescue EOFError
             query_parameters.dup
           end
  params.merge!(path_parameters)
  set_header("action_dispatch.request.parameters", params)
  params
end

def params_parsers

def params_parsers
  ActionDispatch::Request.parameter_parsers
end

def parse_formatted_parameters(parsers)

def parse_formatted_parameters(parsers)
  return yield if content_length.zero? || content_mime_type.nil?
  strategy = parsers.fetch(content_mime_type.symbol) { return yield }
  begin
    strategy.call(raw_post)
  rescue # JSON or Ruby code block errors.
    log_parse_error_once
    raise ParseError, "Error occurred while parsing request parameters"
  end
end

def path_parameters

{ action: "my_action", controller: "my_controller" }

Returned hash keys are symbols:
Returns a hash with the \parameters used to form the \path of the request.
def path_parameters
  get_header(PARAMETERS_KEY) || set_header(PARAMETERS_KEY, {})
end

def path_parameters=(parameters) # :nodoc:

:nodoc:
def path_parameters=(parameters) # :nodoc:
  delete_header("action_dispatch.request.parameters")
  parameters = Request::Utils.set_binary_encoding(self, parameters, parameters[:controller], parameters[:action])
  # If any of the path parameters has an invalid encoding then
  # raise since it's likely to trigger errors further on.
  Request::Utils.check_param_encoding(parameters)
  set_header PARAMETERS_KEY, parameters
rescue Rack::Utils::ParameterTypeError, Rack::Utils::InvalidParameterError => e
  raise ActionController::BadRequest.new("Invalid path parameters: #{e.message}")
end