2011-08-08 6 views
4

私は、現在のセッションだけでなく、他の "リンクされた"セッションに対しても読み書きが必要な宝石に取り組んでいます。今私は、現在のセッション以外のセッションを更新する必要があるときはいつでも、レールとラックのアプリケーションで使用している基盤のセッションストアへの読み書きをハードコーディングしています。しかし、ソリューションを他のセッション実装に移植するためには、より汎用的なアプローチが必要です。現在のRack :: Session実装へのアクセス方法

私はRails.application.config.session_storeを見て、セッション記憶域の実装を決定し、現在のセッション以外のセッションに読み書きするための新しいインスタンスをインスタンス化できます。セッションストアの別のインスタンスを生成するのは少し非効率なようですが、うまくいくようです。

しかし、私はRackアプリを通じて現在のセッションストアに問い合わせる方法を見つけられません。 env['rack.session']およびenv['rack.session.options']は、いかなる洞察も提供していません。

ミドルウェアスタック内の既にインスタンス化されたRack :: Session Rackアプリケーションにアクセスすることをお勧めします。どのミドルウェアが実行されているのか、現在のRack :: Sessionの実装はどれですか(どのサーバがどちらのサーバかを確認する方法はわかりません)。Rack::Session::Abstract::ID

ミドルウェアまたは代替の候補を照会するためのヒントは非常に高く評価されます。

答えて

0

ラック内のセッションには、request.cookies["rack.session"]を使用してアクセスできます。 Rack < 1.0を使用すると、リクエストによって実際にセッション変数を渡すことができます。but it has been disabled in newer versions of rack for security purposes私はそれが遅いのは知っているが、うまくいけば、これはあなたを助ける。

関連する問題