Method: ActionDispatch::Request#POST
- Defined in:
- actionpack/lib/action_dispatch/http/request.rb
#POST ⇒ Object Also known as: request_parameters
Override Rack’s POST method to support indifferent access.
408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 |
# File 'actionpack/lib/action_dispatch/http/request.rb', line 408 def POST fetch_header("action_dispatch.request.request_parameters") do encoding_template = Request::Utils::CustomParamEncoder.action_encoding_template(self, path_parameters[:controller], path_parameters[:action]) param_list = nil pr = parse_formatted_parameters(params_parsers) do if param_list = request_parameters_list ActionDispatch::ParamBuilder.from_pairs(param_list, encoding_template: encoding_template) else # We're not using a version of Rack that provides raw form # pairs; we must use its hash (and thus post-process it below). fallback_request_parameters end end # If the request body was parsed by a custom parser like JSON # (and thus the above block was not run), we need to # post-process the result hash. if param_list.nil? pr = ActionDispatch::ParamBuilder.from_hash(pr, encoding_template: encoding_template) end self.request_parameters = pr end rescue ActionDispatch::ParamError, EOFError => e raise ActionController::BadRequest.new("Invalid request parameters: #{e.message}") end |