我有一个使用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中。
答案 0 :(得分:12)
只需将enable :sessions
行替换为use Rack::Session::Pool
即可。
所有enable :session
都会将Rack::Session::Cookie
添加到堆栈(您要避免使用)。 session
助手仍然可以使用。