2009-06-06 105 views
5

我正在探索Sinatra,我想使用會話,但我不希望它們存儲在Cookie中,我發現Rack :: Session :: Pool它非常有效好。使用Rack :: Session :: Pool與Sinatra

現在我希望會話在一段時間後過期,但我不明白如何實例化Rack :: Session :: Pool,並在Sinatra中使用它。

任何線索?

+1

但是,不[[Rack :: Session :: Pool]](http://rack.rubyforge.org/doc/classes/Rack/Session/Pool.html)使用cookies? – ma11hew28 2012-10-06 22:58:24

回答

4

在你rackup文件:

%w(rubygems rack sinatra).each { |dependency| require dependency } 
disable :run 

require 'myapp' 

sessioned = Rack::Session::Pool.new(
    Sinatra::Application, 
    :domain  => 'example.com', 
    :expire_after => 60 * 60 * 24 * 365 # expire after 1 year 
) 
run sessioned 

要啓動運行rackup app.ru,或使用汽車,等等。這應該來包裝你的應用程序中的會話,並啓用其功能。我不完全知道爲什麼它不需要使用像大多數其他中間件一樣。

瞭解我還沒有測試過,我還沒有需要會話池的東西呢。我從documentation爲Rack :: Session :: Pool寫了這個,它在頁面頂部有一個例子。所以,我無法告訴你如何使用它。

9

西納特拉是相當強大的,從邪惡的跳蚤的伎倆沒有工作,但這樣做的:

use Rack::Session::Pool, :domain => 'example.com', :expire_after => 60 * 60 * 24 * 365 

謝謝!

相關問題