在routes.rb文件中,我定义了根路径,如下所示:
root 'users/sessions#new'
然后,在我的ApplicationController中,我具有重定向这样的逻辑:
def after_sign_in_path_for(user)
return dashboard_path if user.normal_user?
employee_dashboard_path
end
以普通用户身份登录后,导航至根路径(即localhost:3000),然后按预期将我重定向到dashboard_path
。但是,当我单击仪表板上的某个项目并转到该项目的显示页面时,会看到以下闪烁消息:
You are already signed in.
我很困惑,因为在重定向到dashboard_path
之后不应该立即清除Flash消息吗?我发现是否添加了代码以在仪表板页面上显示即时消息,但该即时消息将不会显示在项目的显示页面上。我显示Flash消息的方式就是这样:
<div class="alert alert-success" role="alert">
<%= flash[:notice] %>
</div>
我知道如果我转到devise.en.yml
文件并删除already_authenticated
消息,则不会显示闪光灯,但是我不想这样做,因为我确实想显示此信息给另一种用户的消息。难道我做错了什么?为什么Flash消息会一直保留在项目的显示页面上,并且在重定向到仪表板后不会消失?感谢您的帮助!