私はリクエストをディスパッチするプロセスを理解するために、レール3アーキテクチャを検討していました。全体のプロセスは非常に簡単です。アプリケーションは、最後に必要なコントローラの適切なアクションをディスパッチするActionDispatch :: Routing :: RouteSetの呼び出しメソッドにその呼び出しメッセージを委譲するラックアプリケーションです。これは、ラックenvに格納されたハッシュからコントローラー名とアクション名をキー "action_dispatch.request.path_parameters"で取得します。Rails 3リクエストディスパッチサイクル
問題は次のとおりです。誰がこのハッシュを設定しますか?誰がリクエストURIを解析し、アクション名とコントローラ名を決定しますか?
このコードは見つかりませんでした。ルートコンフィグレーション中に、ActionDispatch :: Routing :: Mapperオブジェクトが定義されたルートに関する情報を構築するために使用され、ActionDispatch :: Routing :: RouteSetに格納されていることが分かります。しかし、この情報が、適切なアクションとコントローラを見つけるためのリクエスト中にどのように使用されているか。ラックも何とかここに関わっていますか?