instance method
POST
Ruby on Rails 8.1.2
Since v3.0.20Signature
POST()
Override Rack’s POST method to support indifferent access.
Source
# File actionpack/lib/action_dispatch/http/request.rb, line 413
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
Defined in actionpack/lib/action_dispatch/http/request.rb line 413
· View on GitHub
· Improve this page
· Find usages on GitHub
Defined in ActionDispatch::Request