method
serve
rails latest stable - Class:
ActionDispatch::Journey::Router
serve(req)public
No documentation available.
# File actionpack/lib/action_dispatch/journey/router.rb, line 31
def serve(req)
find_routes(req) do |match, parameters, route|
set_params = req.path_parameters
path_info = req.path_info
script_name = req.script_name
unless route.path.anchored
req.script_name = (script_name.to_s + match.to_s).chomp("/")
req.path_info = match.post_match
req.path_info = "/" + req.path_info unless req.path_info.start_with? "/"
end
tmp_params = set_params.merge route.defaults
parameters.each_pair { |key, val|
tmp_params[key] = val.force_encoding(::Encoding::UTF_8)
}
req.path_parameters = tmp_params
req.route_uri_pattern = route.path.spec.to_s
_, headers, _ = response = route.app.serve(req)
if "pass" == headers[Constants::X_CASCADE]
req.script_name = script_name
req.path_info = path_info
req.path_parameters = set_params
next
end
return response
end
[404, { Constants::X_CASCADE => "pass" }, ["Not Found"]]
end