如何禁用Devises消息 - "您已登录." - 重定向用户索引时?

All*_*son 6 ruby-on-rails devise

我的网页上有一个按钮,用于将我的用户索引从params重定向回用户索引.我的问题是,当我通过按钮导航回users_path时,我会收到一条消息表单"你已经登录了".即使我没有尝试登录并且只是导航回同一页面但删除了参数,这种情况也会发生.

有问题的按钮看起来像,

<%= button_to "All Users", users_path, class: "button expand" %> 
Run Code Online (Sandbox Code Playgroud)

我在我的所有文件中搜索了"您已登录"的实例.唯一的参考是在devise.en.yml中所说的 already_authenticated: "You are already signed in."

小智 8

您还可以在config/locales/devise.en.yml中编辑消息:

failure:
  already_authenticated: ''
Run Code Online (Sandbox Code Playgroud)

然后,在您的视图中显示您的Flash消息的任何位置:

- if flash[:alert].present?
  ...
Run Code Online (Sandbox Code Playgroud)


All*_*son 1

发生这种情况是因为我使用的是button_to而不是link_to。Button_to 附加 POST 请求,而不是 link_to 附加 GET 请求。通过附加的后请求,rails 正在寻找控制器中与预期不同的操作。

如果在索引或显示页面上创建刷新方法,请始终使用 link_to 帮助程序或附加 GET 请求的帮助程序。