20
use Rack::Session::Pool
...
session[:msg]="Hello Rack"

編集:単語セッションは解決されていないようです。config.ruにセッションプールミドルウェアを含め、ERBファイルに変数を設定しようとすると(Ruby Serveを使用しています)、「未定義のローカル変数またはメソッド「セッション」」と文句を言います。

ありがとう!

4

2 に答える 2

32

sessionは一部のWebフレームワークの一部であるメソッドです。たとえば、SinatraRailsの両方にsessionメソッドがあります。自分で追加しない限り、プレーンrackアプリケーションにはメソッドがありません。session

セッションハッシュはキーの下のラック環境ハッシュに保存されるため、次のrack.sessionようにアクセスできます(アプリにラック環境の名前を付けたと仮定しますenv)。

env['rack.session'][:msg]="Hello Rack"

または、次のように、Rackの組み込みrequestオブジェクトを使用することもできます。

request = Rack::Request.new(env)
request.session[:msg]="Hello Rack"
于 2012-05-04T21:18:15.943 に答える
0

rack::session次にモジュール をロードする必要があり ます。おそらくここのようなCookiehttp://rack.rubyforge.org/doc/classes/Rack/Session/Cookie.html

これは例でそれを説明するようなものです。

于 2012-05-04T18:48:28.370 に答える