Module: ActionDispatch::Http::Parameters
- Extended by:
- ActiveSupport::Concern
- Included in:
- Request
- Defined in:
- actionpack/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:.
Methods included from ActiveSupport::Concern
append_features, class_methods, extended, included, prepend_features, prepended
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 |
# File 'actionpack/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 |
#path_parameters ⇒ Object
Returns a hash with the parameters used to form the path of the request. Returned hash keys are symbols:
{ action: "my_action", controller: "my_controller" }
82 83 84 |
# File 'actionpack/lib/action_dispatch/http/parameters.rb', line 82 def path_parameters get_header(PARAMETERS_KEY) || set_header(PARAMETERS_KEY, {}) end |
#path_parameters=(parameters) ⇒ Object
:nodoc:
65 66 67 68 69 70 71 72 73 74 75 76 |
# File 'actionpack/lib/action_dispatch/http/parameters.rb', line 65 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.}") end |