module ActionDispatch::Http::Parameters

Constants

DEFAULT_PARSERS
PARAMETERS_KEY

Attributes

parameter_parsers[R]

Returns the parameter parsers.

Public Instance Methods

parameters() click to toggle source

Returns both GET and POST parameters in a single hash.

# File lib/action_dispatch/http/parameters.rb, line 50
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
Also aliased as: params
params()
Alias for: parameters
path_parameters() click to toggle source

Returns a hash with the parameters used to form the path of the request. Returned hash keys are strings:

{ action: "my_action", controller: "my_controller" }
# File lib/action_dispatch/http/parameters.rb, line 82
def path_parameters
  get_header(PARAMETERS_KEY) || set_header(PARAMETERS_KEY, {})
end

Private Instance Methods

log_parse_error_once() click to toggle source
# File lib/action_dispatch/http/parameters.rb, line 100
        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
params_parsers() click to toggle source
# File lib/action_dispatch/http/parameters.rb, line 112
def params_parsers
  ActionDispatch::Request.parameter_parsers
end
parse_formatted_parameters(parsers) { || ... } click to toggle source
# File lib/action_dispatch/http/parameters.rb, line 87
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