24

Rack ミドルウェア フィルターは、initialize メソッドと call メソッドを持つ Ruby クラスであることはわかっています。call メソッドが「env」引数を取ることは知っています。このようなもの:

class MyFilter
  def initialize(app)
  end

  def call(env)
  end
end

私の質問は、「call」に送信される「env」引数とは正確には何ですか? これは Rails ENV 環境 (つまり、開発、テスト、運用) と同じですか。

ありがとう!

4

4 に答える 4

5

変数はハッシュであり、envリクエスト ヘッダーと本文、上流のミドルウェアによって追加された可能性のあるランタイム環境データなど、多くの有用な情報が含まれています。

于 2013-07-01T03:51:27.520 に答える
1

使用している Web サーバーに応じてソース コードを見ると、env ハッシュで異なる値を取得できます。ドキュメントに記載されているもののみを使用することをお勧めします

基本的に、env は Web サーバーに固有のリクエスト オブジェクトのハッシュ バージョンです。Rack は正規化された環境を提供するためにいくつかの作業を行い、ミドルウェアが Web サーバー間で一貫して動作できるようにします。

于 2014-09-10T20:14:51.593 に答える