Merge pull request #16912 from yuki24/rescue-rack-parameter-type-error
Rescue `Rack::Utils::ParameterTypeError` instead of `TypeError`
This commit is contained in:
commit
e47b3e15ed
@ -298,7 +298,7 @@ def session_options=(options)
|
|||||||
# Override Rack's GET method to support indifferent access
|
# Override Rack's GET method to support indifferent access
|
||||||
def GET
|
def GET
|
||||||
@env["action_dispatch.request.query_parameters"] ||= Utils.deep_munge(normalize_encode_params(super || {}))
|
@env["action_dispatch.request.query_parameters"] ||= Utils.deep_munge(normalize_encode_params(super || {}))
|
||||||
rescue TypeError, Rack::Utils::InvalidParameterError => e
|
rescue Rack::Utils::ParameterTypeError, Rack::Utils::InvalidParameterError => e
|
||||||
raise ActionController::BadRequest.new(:query, e)
|
raise ActionController::BadRequest.new(:query, e)
|
||||||
end
|
end
|
||||||
alias :query_parameters :GET
|
alias :query_parameters :GET
|
||||||
@ -306,7 +306,7 @@ def GET
|
|||||||
# Override Rack's POST method to support indifferent access
|
# Override Rack's POST method to support indifferent access
|
||||||
def POST
|
def POST
|
||||||
@env["action_dispatch.request.request_parameters"] ||= Utils.deep_munge(normalize_encode_params(super || {}))
|
@env["action_dispatch.request.request_parameters"] ||= Utils.deep_munge(normalize_encode_params(super || {}))
|
||||||
rescue TypeError, Rack::Utils::InvalidParameterError => e
|
rescue Rack::Utils::ParameterTypeError, Rack::Utils::InvalidParameterError => e
|
||||||
raise ActionController::BadRequest.new(:request, e)
|
raise ActionController::BadRequest.new(:request, e)
|
||||||
end
|
end
|
||||||
alias :request_parameters :POST
|
alias :request_parameters :POST
|
||||||
|
@ -915,7 +915,7 @@ class RequestParameters < BaseRequestTest
|
|||||||
|
|
||||||
2.times do
|
2.times do
|
||||||
assert_raises(ActionController::BadRequest) do
|
assert_raises(ActionController::BadRequest) do
|
||||||
# rack will raise a TypeError when parsing this query string
|
# rack will raise a Rack::Utils::ParameterTypeError when parsing this query string
|
||||||
request.parameters
|
request.parameters
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -941,7 +941,7 @@ class RequestParameters < BaseRequestTest
|
|||||||
)
|
)
|
||||||
|
|
||||||
assert_raises(ActionController::BadRequest) do
|
assert_raises(ActionController::BadRequest) do
|
||||||
# rack will raise a TypeError when parsing this query string
|
# rack will raise a Rack::Utils::ParameterTypeError when parsing this query string
|
||||||
request.parameters
|
request.parameters
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -950,7 +950,7 @@ class RequestParameters < BaseRequestTest
|
|||||||
request = stub_request("QUERY_STRING" => "x[y]=1&x[y][][w]=2")
|
request = stub_request("QUERY_STRING" => "x[y]=1&x[y][][w]=2")
|
||||||
|
|
||||||
e = assert_raises(ActionController::BadRequest) do
|
e = assert_raises(ActionController::BadRequest) do
|
||||||
# rack will raise a TypeError when parsing this query string
|
# rack will raise a Rack::Utils::ParameterTypeError when parsing this query string
|
||||||
request.parameters
|
request.parameters
|
||||||
end
|
end
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user