gpt4 book ai didi

ruby - Sinatra session 未按预期持续

转载 作者:数据小太阳 更新时间:2023-10-29 07:11:18 25 4
gpt4 key购买 nike

我正在尝试使用 Sinatra 中的重定向和 session 在网站周围传递一些数据。这是一个简化的示例,使用 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 的 session 数据,即使我直接请求它, session 仍然存在,正如您对 / 的后续请求所期望的那样。

想法?

最佳答案

FWIW,我不清楚这是为什么,但是一旦我将我的 Sinatra 应用程序移至多实例环境,我就开始遇到大量 session 消失的问题。

最后,我发现使用这种语法有效,而简单的“enable :sessions”或“set :sessions, true”却没有:

use Rack::Session::Cookie, :key => 'rack.session',
:path => '/',
:secret => 'your_secret'

关于ruby - Sinatra session 未按预期持续,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6749020/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com