如何禁用设计消息 - "You are already signed in." - 重定向回用户索引时?
How do I disable Devises message - "You are already signed in." - when redirecting back the users index?
我的网页上有一个按钮,可以使用参数将我从用户索引重定向回用户索引。我的问题是,当我通过一个按钮导航回 users_path 时,我收到一条消息表单 devise 说 "You are already signed in." 即使我没有尝试登录并且只是导航回同一页面,也会发生这种情况但删除参数。
有问题的按钮看起来像,
<%= button_to "All Users", users_path, class: "button expand" %>
我在我的所有文件中搜索了 "You are already signed in." 的实例,唯一的参考是 devise.en.yml 中的 already_authenticated: "You are already signed in."
DeviseController
正在从方法 require_no_authentication
生成此消息。此方法用作 before_filter
页面上的登录页面或其他对登录用户无用的类似操作。它重定向到资源的 after_sign_in_path
并设置 flash
消息。您必须覆盖 require_no_authentication
方法或生成一个不使用 before_filter
.
的新控制器
发生这种情况是因为我使用的是 button_to 而不是 link_to。
button_to 附加一个 POST 请求,而 link_to 附加一个 GET 请求。随附的 post 请求 rails 正在寻找控制器中与预期不同的操作。
如果在索引或显示页面上创建刷新方法,请始终使用 link_to 帮助器或附加 GET 请求的帮助器。
您还可以在 config/locales/devise 中编辑消息。en.yml:
failure:
already_authenticated: ''
然后在您的视图中显示即显消息的任何位置:
- if flash[:alert].present?
...
我的网页上有一个按钮,可以使用参数将我从用户索引重定向回用户索引。我的问题是,当我通过一个按钮导航回 users_path 时,我收到一条消息表单 devise 说 "You are already signed in." 即使我没有尝试登录并且只是导航回同一页面,也会发生这种情况但删除参数。
有问题的按钮看起来像,
<%= button_to "All Users", users_path, class: "button expand" %>
我在我的所有文件中搜索了 "You are already signed in." 的实例,唯一的参考是 devise.en.yml 中的 already_authenticated: "You are already signed in."
DeviseController
正在从方法 require_no_authentication
生成此消息。此方法用作 before_filter
页面上的登录页面或其他对登录用户无用的类似操作。它重定向到资源的 after_sign_in_path
并设置 flash
消息。您必须覆盖 require_no_authentication
方法或生成一个不使用 before_filter
.
发生这种情况是因为我使用的是 button_to 而不是 link_to。 button_to 附加一个 POST 请求,而 link_to 附加一个 GET 请求。随附的 post 请求 rails 正在寻找控制器中与预期不同的操作。
如果在索引或显示页面上创建刷新方法,请始终使用 link_to 帮助器或附加 GET 请求的帮助器。
您还可以在 config/locales/devise 中编辑消息。en.yml:
failure:
already_authenticated: ''
然后在您的视图中显示即显消息的任何位置:
- if flash[:alert].present?
...