Rack::Session
与async_sinatra
'方法一起使用aroute
似乎是不可能的。我认为这是因为在会话中间件有机会修改必要的标头之前async_sinatra
引发:async
,但这似乎是一个常见问题。有没有办法在不重写会话中间件的情况下完成这项工作?我是否忽略了一些明显的东西?
require "sinatra/async"
class AsyncTest < Sinatra::Base
register Sinatra::Async
enable :sessions
aget "/foo" do
session[:message] = "Hello World!"
body "foo: #{session[:message]}"
end
aget "/bar" do
body "bar: #{session[:message]}"
end
run! if app_file == $0
end
访问/foo
呈现“foo:Hello World!” 正如预期的那样,但/bar
呈现“bar:”,引起全城的皱眉。该怎么办?这是不可能的吗?