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

编辑:会话一词似乎没有解决。我在我的 config.ru 中包含了会话池中间件,并尝试在 ERB 文件中设置一个变量(我正在使用 Ruby Serve),它抱怨“未定义的局部变量或方法‘会话’”

谢谢!

4

2 回答 2

32

session是一种方法,它是某些 Web 框架的一部分,例如SinatraRails都有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"
于 2012-05-04T21:18:15.943 回答
0

你需要加载 rack::session模块下一个可能像这里的cookie http://rack.rubyforge.org/doc/classes/Rack/Session/Cookie.html

这就像用例子来解释它。

于 2012-05-04T18:48:28.370 回答