Сеансы Sinatra не сохраняются, как ожидалось

Я пытаюсь использовать перенаправления и сеансы в Sinatra для передачи некоторых данных по сайту. Вот упрощенный пример использования PrettyPrint для отладки:

require 'pp'

require 'rubygems'
require 'sinatra'

enable :sessions

get '/' do
  session[:foo] = '12345'

  puts 'session1'
  pp session

  redirect to('/redir')
end

get '/redir' do
  puts 'session2'
  pp session
  'hello world'
end

Глядя на вывод Thin, я вижу:

>> Listening on 0.0.0.0:4567, CTRL+C to stop
session1
{"session_id"=>
  "ea587d8afdcb2ada64f9b17cdd1fbae7b192dee5dfc2999ff9d323f1528f6a0f",
 "foo"=>"12345"}
127.0.0.1 - - [19/Jul/2011 10:33:24] "GET / HTTP/1.1" 302 - 0.0042
session2
{}
127.0.0.1 - - [19/Jul/2011 10:33:24] "GET /redir HTTP/1.1" 200 11 0.0004

Все, что я видел в документации, предполагает, что это должно работать нормально. Фактически, я никогда не получаю никаких данных сеанса для / redir , даже если я запрашиваю их напрямую, и сеанс сохраняется, как и следовало ожидать при последующих запросах для / .

Мысли?

6
задан Mike Craig 19 July 2011 в 16:01
поделиться