当用户登录到系统时,它是https
然后它转到主页,它是http
在登录期间,根据某些条件,我们会使用flash[:notice]
向用户提供一些消息
但是flash[:notice]
不起作用。
当ssl
未实现时,flash[:notice]工作正常。
从http
到http
页面redirection
也flash[:notice]
完美运行。
我们还实施了
flash.keep
redirect_to path_to_path, :flash=>{:notice=>"our message"}
但他们都失败了。
如果有人遇到过这种情况,请提出建议。
flash
消息是使用服务器会话实现的。但是,根据服务器和配置,会话不会在 http 和 https 会话之间共享。换句话说,如果从 http 切换到 https,反之亦然,服务器将创建两个不同的用户会话。
您可以通过打印出会话 ID 并比较它是否相同来检查这一点。
可以通过在表示消息的查询字符串中传递参数(例如redirect_to path_to_path(message: 1)
)来解决此问题,然后在操作检查中(如果存在参数),则在视图中打印出消息(将在视图中编码)。
在我们的应用程序中,有两个重定向。
在登录后的第一次重定向中,我们转到创建闪存消息的主页。
在第二个重定向协议中,主页的协议已更改。
我在两次重定向中都使用了flash.keep
。
现在flash[:notice]
一切都完美运行。