2010-07-26 15 views
8

मेरे पास एक सिनात्रा वेबपैप है जिसे मैंने enable :sessions का उपयोग करके बनाया है जहां मैं session[:mything] के साथ अपने सत्र डेटा तक पहुंचता हूं।रैक :: सत्र :: सिनात्रा के साथ पूल

अब मैं सर्वर पक्ष (यानी डेटाबेस आधारित सत्रों के साथ) पर डेटा स्टोर करना चाहता हूं और मैं यह नहीं समझ सकता कि Rack::Session::Pool का उपयोग कैसे करें, जो कि मुझे उपयोग करने की आवश्यकता है।

पूल के साथ उपयोग के लिए मैं अपने वेबैप को बदलने के बारे में कैसे जा सकता हूं?

मुझे लगता है मैं लाइन

use Rack::Session::Pool 

आगे क्या आता है जोड़ने की जरूरत है पता है? - अग्रिम में धन्यवाद!

संपादित:

require 'rubygems' 
require 'sinatra' 

enable :sessions 

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

जाएँ /?hi=there तो / पर जाएँ और आप अभी भी {'hi'=>'there'} देखेंगे, क्योंकि यह एक कुकी में संग्रहीत किया गया है: यहाँ एक उदाहरण कुकी-आधारित सत्र का उपयोग कर रहा है।

उत्तर

11

बस को use Rack::Session::Pool के साथ लाइन को प्रतिस्थापित करें। सभी enable :session स्टैक में Rack::Session::Cookie जोड़ रहा है (जिसे आप टालना चाहते हैं)। session सहायक अभी भी काम करेगा।

+0

रैक :: सत्र :: कुकी सरल कुकी आधारित सत्र प्रबंधन प्रदान करती है। – Liber

+0

@ लाइबर ओपी को एक अलग तरह के सत्र की आवश्यकता होती है, न कि 'रैक :: सत्र :: कुकी' प्रदान करता है, इसलिए कॉन्स्टेंटिन हससे का जवाब। –

संबंधित मुद्दे