2010-07-26 16 views
8

Ho una webapp di Sinatra che ho creato usando enable :sessions dove accedo ai dati della mia sessione con session[:mything].Rack :: Session :: Pool con Sinatra

Ora desidero memorizzare i dati sul lato server (ad esempio con sessioni basate su database) e non riesco a capire come utilizzare Rack::Session::Pool, che sembra essere la cosa che ho bisogno di usare.

Come faccio a convertire la mia webapp per l'uso con Pool?

so che ho bisogno di aggiungere la linea

use Rack::Session::Pool 

cosa viene dopo? - Grazie in anticipo!

EDIT: Ecco un esempio utilizzando le sessioni basate su cookie:

require 'rubygems' 
require 'sinatra' 

enable :sessions 

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

Visita /?hi=there quindi visitare / e ci si può comunque vedere {'hi'=>'there'}, come è stato memorizzato in un cookie.

risposta

11

Sostituire semplicemente la linea enable :sessions con use Rack::Session::Pool. Tutto enable :session aggiunge Rack::Session::Cookie allo stack (che si desidera evitare). L'helper session funzionerà ancora.

+0

Rack :: Session :: Cookie offre una semplice gestione delle sessioni basata sui cookie. – Liber

+0

@Liber OP richiede un diverso tipo di sessione, non quello fornito da 'Rack :: Session :: Cookie', quindi la risposta di Konstantin Hasse. –

Problemi correlati