gpt4 book ai didi

ruby-on-rails - session 超时后,消息 "true"在主页上闪烁

转载 作者:行者123 更新时间:2023-12-05 00:23:47 25 4
gpt4 key购买 nike

我有一个 Rails4 应用程序,当 session 由于不活动而超时时,我正在尝试闪烁自定义消息。

我通过配置 timeout_in 来做到这一点设置 devise.rb :

Devise.setup do |config|
...
config.timeout_in = 30.minutes
...
end

并向我的应用程序 Controller 添加自定义救援:
rescue_from CanCan::AccessDenied do |exception|
if user_signed_in?
flash.now.alert = exception.message
render text: '', layout: true, status: 403
else
redirect_to new_user_session_path, notice: flash[:alert] || "You must login first"
end
end

一切似乎都运行良好...当 session 超时时, flash[:alert]已经有正确的消息,所以我只使用它,当用户尝试访问资源而不先登录时,会返回“您必须先登录”消息。

这是 main.html.haml 页面中呈现这些警报的代码:
.container
.main-content
#flash
- flash.each do |type, msg|
%div{class: ('alert alert-dismissable fade in')}
%button.close{data: {dismiss: :alert}} ×
= msg
= yield

问题是,有时我会看到 session 超时消息正下方出现文本“True”的闪烁:

Message showing True

我不知道它是从哪里来的。似乎有些东西正在创建具有该值的闪存消息。我想知道我做错了什么,或者是否有更好的方法来显示 session 超时消息。有任何想法吗?

最佳答案

我知道这是一个迟到的答复,但这就是我所做的。

flash.each do |type, message|
unless type.to_s == 'timedout'
<!-- Carry on printing messages -->

关于ruby-on-rails - session 超时后,消息 "true"在主页上闪烁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27538622/

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