Стойка :: Сессия :: Бассейн с Синатрой - PullRequest
9 голосов
/ 27 июля 2010

У меня есть веб-приложение Sinatra, которое я построил с использованием enable :sessions, где я получаю доступ к своим данным сеанса с помощью session[:mything].

Теперь я хочу хранить данные на стороне сервера (т.е. с сеансами на основе базы данных) и я не могу понять, как использовать Rack::Session::Pool, что мне и нужно.

Как мне преобразовать свое веб-приложение для использования с 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 Ответ

12 голосов
/ 29 июля 2010

Просто замените строку enable :sessions на use Rack::Session::Pool. Все, что делает enable :session, это добавляет Rack::Session::Cookie в стек (чего вы хотите избежать). Помощник session все еще будет работать.

...