设计has_authenticated Flash消息可保留多次重定向

时间:2019-03-29 21:35:33

标签: ruby-on-rails devise

在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消息会一直保留在项目的显示页面上,并且在重定向到仪表板后不会消失?感谢您的帮助!

0 个答案:

没有答案