Rack :: Session ::与Sinatra的游泳池

时间:2010-07-26 23:39:18

标签: ruby session sinatra rack

我有一个使用enable :sessions构建的Sinatra网络应用程序,我使用session[:mything]访问我的会话数据。

我现在想在服务器端存储数据(即使用基于数据库的会话),我无法弄清楚如何使用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中。

1 个答案:

答案 0 :(得分:12)

只需将enable :sessions行替换为use Rack::Session::Pool即可。 所有enable :session都会将Rack::Session::Cookie添加到堆栈(您要避免使用)。 session助手仍然可以使用。