Я смотрел на архитектуру рельсов 3, чтобы понять процесс отправки запроса. Весь процесс довольно прост. Приложение представляет собой приложение стойки, которое, наконец, передает свое сообщение вызова методу вызова ActionDispatch:: Routing:: RouteSet, который отправляет соответствующее действие необходимого контроллера. Он принимает имена контроллеров и действий из хэша, хранящегося в стойке env, с помощью ключа "action_dispatch.request.path_parameters".
Итак, вопрос: кто устанавливает этот хеш? Кто разбирает запрос uri и определяет имена действий и контроллеров?
Мне не удалось найти этот код. Я вижу, что при настройке маршрута объект ActionDispatch:: Routing:: Mapper используется для создания информации об определенных маршрутах и сохраняет его в ActionDispatch:: Routing:: RouteSet. Но как эта информация используется во время запроса, чтобы найти подходящее действие и контроллер. Здесь также как-то задействована стойка?