use Rack::Session::Pool
...
session[:msg]="Hello Rack"
编辑:会话一词似乎没有解决。我在我的 config.ru 中包含了会话池中间件,并尝试在 ERB 文件中设置一个变量(我正在使用 Ruby Serve),它抱怨“未定义的局部变量或方法‘会话’”
谢谢!
session
是一种方法,它是某些 Web 框架的一部分,例如Sinatra和Rails都有session
方法。普通rack
应用程序没有session
方法,除非您自己添加一个。
会话哈希存储在 key 下的 rack env 哈希中rack.session
,因此您可以像这样访问它(假设您已将 rack 环境命名为您的应用程序env
):
env['rack.session'][:msg]="Hello Rack"
或者,您可以使用 Rack 的内置request
对象,如下所示:
request = Rack::Request.new(env)
request.session[:msg]="Hello Rack"
你需要加载 rack::session
模块下一个可能像这里的cookie
http://rack.rubyforge.org/doc/classes/Rack/Session/Cookie.html
这就像用例子来解释它。