繁体   English   中英

Rails 设计:user_signed_in? 不工作

[英]Rails devise: user_signed_in? not working

我认为:

<% if user_signed_in? %>
<%= current_user.email %>
<% else %>
<%= link_to "Sign in", new_user_session_path %><br />
<%= link_to "Opret", new_user_session_path %><br />
<% end %>

但是当以用户身份登录时:我仍然可以看到链接:

<%= link_to "Sign in", new_user_session_path %><br />
<%= link_to "Opret", new_user_session_path %><br />

为什么助手不工作?

您是否在控制器中使用了设计之前的操作?

before_action :authenticate_user!

不确定 user_signed_in 背后是什么? 方法,要么您的登录无法正常工作,要么您的方法已损坏。

也许试试这个,如果那不起作用,我会看看实际登录出了什么问题。

<%unless current_user.blank? -%>
signed in
<%else -%>
not signed in
<%end-%>

确保您使用的是正确的模型。 例如,如果您的模型是成员,那么您应该使用member_sign_in而不是user_sign_in

可能是一个可能的解释。

您可能有一个预先存在的current_user方法,它停止在user_signed_in?调用 Devise 的current_user user_signed_in? 从返回预期值。

如果登录工作正常,可能是因为正在进行某种缓存?

我遇到了完全相同的问题,并通过再次执行$bundle exec rails g devise user解决了它。 我的问题是devise_for users不知何故在路由文件中丢失了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM