Rails设计:user_signed_in? 不工作

在我看来,我有这个:

   

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

 

帮助器为什么不工作?

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

 before_filter :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在路由文件中某种程度上丢失了。