Ruby 未使用Rack::FiberPool保留Sinatra会话
虽然我看不出我做错了什么,但在请求之间不会保留会话。密码Ruby 未使用Rack::FiberPool保留Sinatra会话,ruby,sinatra,rack,thin,fiber,Ruby,Sinatra,Rack,Thin,Fiber,虽然我看不出我做错了什么,但在请求之间不会保留会话。密码 需要“sinatra” 需要“机架/光纤池” 类SessionTest
需要“sinatra”
需要“机架/光纤池”
类SessionTest
结果是,用使用框架::会话::Cookie
替换启用:会话
就足以让它工作
但是为什么 试试这个:
require 'sinatra'
require 'rack/fiber_pool'
class SessionTest < Sinatra::Base
enable :sessions
set :session_secret, "foobar"
get '/' do
body { session.inspect } #This is always '{}'!
end
get '/a' do
session['user'] = "bob"
redirect '/'
end
end
use Rack::FiberPool
run SessionTest.new
需要“sinatra”
需要“机架/光纤池”
类SessionTest
否则,Sinatra将在会话中间件之后设置光纤池,这不起作用。这不是一个bug,而是由Rack::FiberPool
的工作方式引起的