2010-07-26 46 views
8

我有一个使用enable :sessions构建的Sinatra webapp,在那里我使用session[:mything]访问我的会话数据。Rack :: Session :: Pool Sinatra

我现在想要在服务器端存储数据(即基于数据库的会话),我不知道如何使用Rack::Session::Pool,这似乎是我需要使用的东西。

如何将我的webapp转换为使用Pool?

我知道我需要添加行

use Rack::Session::Pool 

下一步怎么走? - 提前致谢!

编辑:这是使用基于cookie的会话的例子:

require 'rubygems' 
require 'sinatra' 

enable :sessions 

get '/' do 
    session.merge!(params) 
    session.inspect 
end 

访问/?hi=there然后访问/,你仍然会看到{'hi'=>'there'},因为它已经存储在cookie中。

回答

11

只需将enable :sessions替换为use Rack::Session::Pool即可。 所有enable :session确实会将Rack::Session::Cookie添加到堆栈(您要避免)。 session帮手仍然有效。

+0

Rack :: Session :: Cookie提供简单的基于cookie的会话管理。 – Liber 2014-05-05 02:09:56

+0

@Liber OP需要一个不同类型的会话,而不是'Rack :: Session :: Cookie'提供的会话,因此Konstantin Hasse的回答是。 – 2015-10-07 15:30:06

相关问题