Class | Rack::MethodOverride |
In: |
lib/rack/methodoverride.rb
|
Parent: | Object |
HTTP_METHODS | = | %w(GET HEAD PUT POST DELETE OPTIONS) |
METHOD_OVERRIDE_PARAM_KEY | = | "_method".freeze |
HTTP_METHOD_OVERRIDE_HEADER | = | "HTTP_X_HTTP_METHOD_OVERRIDE".freeze |
# File lib/rack/methodoverride.rb, line 12 12: def call(env) 13: if env["REQUEST_METHOD"] == "POST" 14: req = Request.new(env) 15: method = req.POST[METHOD_OVERRIDE_PARAM_KEY] || 16: env[HTTP_METHOD_OVERRIDE_HEADER] 17: method = method.to_s.upcase 18: if HTTP_METHODS.include?(method) 19: env["rack.methodoverride.original_method"] = env["REQUEST_METHOD"] 20: env["REQUEST_METHOD"] = method 21: end 22: end 23: 24: @app.call(env) 25: end