2012-11-27 33 views
1

使用Rack::Sessionasync_sinatraaroute方法似乎不可行。我收集這是因爲async_sinatra在會話中間件有機會修改必要的頭文件之前提出:async,但這似乎是一個常見問題。有沒有辦法在不重寫會話中間件的情況下完成這項工作?我忽略了一些明顯的東西?是否可以使用Rack :: Session中間件和async_sinatra?

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渲染「酒吧:」,導致所有鎮周圍皺眉。該怎麼辦?這是不可能的嗎?

回答

0

你有body調用之前調用會話中間件:

aget "/bar" do 
    message = session[:message] 
    body "bar: #{message}" 
end 
相關問題