まずサーバーセッションを有効にするには起動ファイルである config.ru で use します。
use Rack::Session::Pool
引数にオプションをつけてセッションの有効期限を変えたりします。
あとはクライアントから呼び出されたアクション(コントローラー)で session_options に :drop オプションを渡してあげると削除されます。
get '/' do (session[:count] = (session[:count] || 0) + 1).to_s end get '/clear' do request.session_options[:drop] = true end
http://localhost:4567/ をたたくとリクエストした数だけカウント数が画面に表示され、 /clear を叩いてから再度 / を叩くと、セッション ID が新たに割り当てられ 1 に戻ります。 :renew を渡すと新たなセッション ID を割り振りつつ、前の情報をマージしてくれます。
session.clear は単純に中身の Hash オブジェクトをクリアするだけで、セッション ID はそのままでした。