6

Sinatraを探索していて、セッションを使用したいのですが、Cookieに保存したくないので、Rack :: Session::Poolが非常にうまく機能していることがわかりました。

今、セッションを一定期間後に期限切れにしたいのですが、Rack :: Session :: Poolをインスタンス化する方法がわかりません。そして、Sinatraでそれを使用します。

どんな手掛かり ?

4

2 に答える 2

10

Sinatraは非常に強力で、The Wicked Fleaのトリックは機能しませんでしたが、これは機能しました:

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

ありがとう !

于 2009-06-06T17:45:39.850 に答える
5

ラックアップファイル:

%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

runを起動するrackup app.ruには、またはPassengerなどを使用します。これにより、アプリケーションがセッションプールにラップされ、その機能が有効になります。他のほとんどのミドルウェアのように使用する必要がない理由は完全にはわかりません。

私はこれをまったくテストしていないことを理解してください。セッションプールを必要とするものはまだありません。これは、ページの上部に例があるRack :: Session::Poolのドキュメントから作成しました。ですから、使い方も正確には言えません。

于 2009-06-06T17:24:56.653 に答える