我认为这是:
<% 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 />
为什么助手不能正常工作?
答案 0 :(得分:22)
您是否在控制器中使用了过滤器前的设计?
before_filter :authenticate_user!
答案 1 :(得分:8)
不确定user_signed_in背后是什么?方法,您的登录无法正常工作或方法已损坏。
也许尝试一下,如果这不起作用,我会看看实际登录出了什么问题。
<%unless current_user.blank? -%>
signed in
<%else -%>
not signed in
<%end-%>
答案 2 :(得分:4)
确保使用的是正确的型号。例如,如果您的模型是成员,那么您应该使用member_sign_in
而不是user_sign_in
。
答案 3 :(得分:1)
如果登录工作正常,可能是因为正在进行某种缓存?
答案 4 :(得分:1)
This可能是一种可能的解释。
您可能有一个预先存在的current_user
方法,可以阻止在current_user
内调用的设计user_signed_in?
返回预期值。
答案 5 :(得分:0)
我遇到了完全相同的问题,并通过这样做解决了这个问题
再次devise_for users
。我的问题是JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF8
在路由文件中以某种方式丢失了。