Rails设计:user_signed_in?不工作

Joh*_*ohn 16 ruby ruby-on-rails devise ruby-on-rails-3

在我看来,我有这个:

<% 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 %>
Run Code Online (Sandbox Code Playgroud)

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

<%= link_to "Sign in", new_user_session_path %><br />
<%= link_to "Opret", new_user_session_path %><br />
Run Code Online (Sandbox Code Playgroud)

帮助器为什么不工作?

Bri*_*ian 22

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

before_filter :authenticate_user!
Run Code Online (Sandbox Code Playgroud)


Sco*_*ott 8

不确定user_signed_in背后是什么?方法,您的登录不正常或您的方法被破坏.

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

<%unless current_user.blank? -%>
signed in
<%else -%>
not signed in
<%end-%>
Run Code Online (Sandbox Code Playgroud)


小智 5

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