У меня есть веб-приложение Sinatra, я создал использование enable :sessions
где я получаю доступ к своим данным сессии с session[:mything]
.
Я теперь хочу хранить данные на стороне сервера (т.е. с основанными на базе данных сессиями), и я не могу выяснить, как использовать Rack::Session::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.
Просто замените строку enable: sessions
на , используйте Rack :: Session :: Pool
.
Все, что делает enable: session
, - это добавление Rack :: Session :: Cookie
в стек (чего вы хотите избежать). Помощник сеанса
по-прежнему будет работать.