我目前正在学习 Sinatra,我似乎无法将会话变量设置为 nil ......我一直在寻找几个小时,但它只是不起作用。奇怪的是它在我的机器上本地工作,但在 Heroku 上不起作用。简而言之,我的代码如下所示:
configure :production do
enable :sessions
set :session_secret, ENV['SESSION_KEY'] || 'whatever'
end
post '/send-operation/?' do
session[:message] = 'Operation completed!'
redirect '/operation/'
end
get '/operation/?' do
if(session[:message])
"The message is: #{session[:message]}."
session[:message] = nil
end
end
因此,如果我调用“发送操作”路由,它会将我重定向到“操作”路由并显示 session[:message] 变量。如果我刷新“操作”页面,应该没有任何消息,因为上一条消息已设置为 nil。但它仍然显示“操作完成!” 每次我调用“操作”路线。难道我做错了什么?
谢谢阅读!