繁体   English   中英

如何在Rack应用程序中设置/获取会话变量?

[英]How do I set/get session vars in a Rack app?

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

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

谢谢!

session是一种方法,是某些Web框架的一部分,例如SinatraRails都有session方法。 普通rack应用程序没有session方法,除非您自己添加。

会议散列存储在项下架ENV哈希rack.session ,这样你就可以像这样(假设你已经命名机架环境,你的应用程序访问它env ):

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

或者,您可以使用Rack的内置request对象 ,如下所示:

request = Rack::Request.new(env)
request.session[:msg]="Hello Rack"

你需要加载rack::session module下一个可能的cookie,如http://rack.rubyforge.org/doc/classes/Rack/Session/Cookie.html

这就像用例子解释一样。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM