config.middlewareアレイを使用するのではなく、config.ruファイルを明確にしてラックミドルウェアを指定したいと思います。
config.ruが通常次のようになっている場合:
require ::File.expand_path('../config/environment', __FILE__)
use Rack::Deflater
run TestApp::Application
TestApp :: Applicationを実行すると、Railsの内部ミドルウェアに入ると言っているのは正しいですか?つまり、config.middlewareで定義されたミドルウェアのチェーンを開始しますか?
では、Railsアプリケーションの外部でミドルウェアを指定する効果的な使用法は、Rails自体の外部の要求(または応答)を処理することですか?したがって、この例では、デフレーターはRailsアプリのミドルウェアが開始する前にリクエストに対応しますか?
そして、config.middelwareを使用する効果的な使用法は、そのチェーン内のどこにでも配置できる、より多くのRails固有のミドルウェアを指定することです。
また、ラックアプリケーションが開始されたとき、アプリは何ですか?(それはラックアプリケーションの初期化に渡されますか?)私はいつもアプリはrailsアプリそのものだと思っていましたが、railsアプリはチェーンのもう1つのミッドデルウェアのようです。