enable :sessions
get '/foo' do
session['m'] = 'Hello World!'
redirect '/bar'
end
get '/bar' do
session['m'] # => 'Hello World!'
end
Run Code Online (Sandbox Code Playgroud)
它似乎不起作用.
Kon*_*ase 15
你在用霰弹枪吗?如果是这样,请执行以下操作:
configure(:development) { set :session_secret, "something" }
Run Code Online (Sandbox Code Playgroud)
在Sinatra 1.3中不再需要这样做.
Phr*_*ogz 12
也许您在网络浏览器上禁用了cookie?Sinatra的会话默认使用cookie.
这是我的测试应用程序:
require 'sinatra'
enable :sessions
get '/foo' do
session['m'] = 'Hello World!'
redirect '/bar'
end
get '/bar' do
<<-ENDRESPONSE
Ruby: #{RUBY_VERSION}
Rack: #{Rack::VERSION}
Sinatra: #{Sinatra::VERSION}
#{session['m'].inspect}
ENDRESPONSE
end
Run Code Online (Sandbox Code Playgroud)
在这里,它正在行动:
phrogz$ curl --cookie-jar cookies.txt -L http://localhost:4567/foo
Ruby: 1.9.2
Rack: [1, 1]
Sinatra: 1.2.3
"Hello World!"
phrogz$ curl -L http://localhost:4567/foo
Ruby: 1.9.2
Rack: [1, 1]
Sinatra: 1.2.3
nil
phrogz$ cat cookies.txt
# Netscape HTTP Cookie File
# http://curl.haxx.se/rfc/cookie_spec.html
# This file was generated by libcurl! Edit at your own risk.
localhost FALSE / FALSE 0 rack.session BAh7BkkiBm0GOgZFRkkiEUhl...
Run Code Online (Sandbox Code Playgroud)
如果没有cookie,您的重定向将会起作用,但它将在重定向之后成为一个全新的会话,会话从头开始.
| 归档时间: |
|
| 查看次数: |
13835 次 |
| 最近记录: |