module ActionDispatch::Http::Parameters

Constants

DEFAULT_PARSERS
PARAMETERS_KEY

Attributes

parameter_parsers[R]

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 30
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 61
def path_parameters
  get_header(PARAMETERS_KEY) || set_header(PARAMETERS_KEY, {})
end

Private Instance Methods

params_parsers() click to toggle source
# File lib/action_dispatch/http/parameters.rb, line 82
def params_parsers
  ActionDispatch::Request.parameter_parsers
end
parse_formatted_parameters(parsers) { || ... } click to toggle source
# File lib/action_dispatch/http/parameters.rb, line 67
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
    my_logger = logger || ActiveSupport::Logger.new($stderr)
    my_logger.debug "Error occurred while parsing request parameters.\nContents:\n\n#{raw_post}"

    raise ParamsParser::ParseError
  end
end