Sinatraでリダイレクトとセッションを使用してサイト周辺のデータを渡そうとしています。ここでは、デバッグのためにPrettyPrintを使用して、簡単な例です:シンの出力を見てみるとSinatraセッションが期待通りに持続しない
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
、私は以下を参照してください。私はドキュメントで見てきた
>> 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
のセッションデータは一切取得されません。その後のリクエストでは、/
のようにセッションは継続します。
思考?
シナトラセッションではCookieが使用されています。クッキーの出入りを確認するためにHTTPヘッダー(Firebugなど)を監視しようとしましたか?また、これを見てくださいhttp://stackoverflow.com/questions/5631862/problem-with-sinatra-and-session-variables-which-are-not-being-setこれとhttp://stackoverflow.com/questions/5693528/how-to-use-sinatra-session –