lib/rambulance/exceptions_app.rb in rambulance-2.3.0 vs lib/rambulance/exceptions_app.rb in rambulance-3.0.0

- old
+ new

@@ -9,16 +9,16 @@ http_status >= 400 && ![418, 427, 430, 509].include?(http_status) end.invert BAD_REQUEST_ERRORS = [ ActionController::BadRequest, - begin - ActionDispatch::Http::Parameters::ParseError # Rails >= 5.2.0 - rescue NameError; end, - begin - ActionDispatch::ParamsParser::ParseError # Rails < 5.2.0 - rescue NameError; end, + # Rails >= 7.1.0 + defined?(ActionDispatch::Http::MimeNegotiation::InvalidType) ? ActionDispatch::Http::MimeNegotiation::InvalidType : nil, + # Rails >= 5.2.0 + defined?(ActionDispatch::Http::Parameters::ParseError) ? ActionDispatch::Http::Parameters::ParseError : nil, + # Rails < 5.2.0 + defined?(ActionDispatch::ParamsParser::ParseError) ? ActionDispatch::ParamsParser::ParseError : nil ].compact.freeze class ExceptionsApp < ActionController::Base layout :layout_name @@ -85,9 +85,13 @@ begin request.accepts rescue Mime::Type::InvalidMimeType request.env["MALFORMED_HTTP_ACCEPT"], request.env["HTTP_ACCEPT"] = request.env["HTTP_ACCEPT"], "*/*" + end + + if defined?(Rack::RACK_REQUEST_FORM_ERROR) && request.env.include?(Rack::RACK_REQUEST_FORM_ERROR) + request.env.delete(Rack::RACK_REQUEST_FORM_ERROR) end # The #formats method needs to be called after the sanitization above. request.formats << Mime::Type.lookup('text/plain')