Module: ActionDispatch::Http::Parameters
- Extended by:
- ActiveSupport::Concern
- Included in:
- Request
- Defined in:
- lib/action_dispatch/http/parameters.rb
Defined Under Namespace
Modules: ClassMethods Classes: ParseError
Constant Summary collapse
- PARAMETERS_KEY =
"action_dispatch.request.path_parameters"
- DEFAULT_PARSERS =
{ Mime[:json].symbol => -> (raw_post) { data = ActiveSupport::JSON.decode(raw_post) data.is_a?(Hash) ? data : { _json: data } } }
Instance Method Summary collapse
-
#parameters ⇒ Object
(also: #params)
Returns both GET and POST parameters in a single hash.
-
#path_parameters ⇒ Object
Returns a hash with the parameters used to form the path of the request.
-
#path_parameters=(parameters) ⇒ Object
:nodoc:.
Instance Method Details
#parameters ⇒ Object Also known as: params
Returns both GET and POST parameters in a single hash.
50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
# 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) params = set_binary_encoding(params, params[:controller], params[:action]) set_header("action_dispatch.request.parameters", params) params end |
#path_parameters ⇒ Object
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'}
83 84 85 |
# File 'lib/action_dispatch/http/parameters.rb', line 83 def path_parameters get_header(PARAMETERS_KEY) || set_header(PARAMETERS_KEY, {}) end |
#path_parameters=(parameters) ⇒ Object
:nodoc:
66 67 68 69 70 71 72 73 74 75 76 77 |
# File 'lib/action_dispatch/http/parameters.rb', line 66 def path_parameters=(parameters) #:nodoc: delete_header("action_dispatch.request.parameters") parameters = set_binary_encoding(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.}") end |