I have this in my view:
<% 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 %>
But when have signed in as a user: I still get the links in view:
<%= link_to "Sign in", new_user_session_path %><br />
<%= link_to "Opret", new_user_session_path %><br />
Why is the helper not working?
您是否在控制器中使用了设计之前的操作?
before_action :authenticate_user!
Not sure what is behind the user_signed_in? method, either your login is not working correctly or your method is broken.
Maybe try this, if that doesn't work, I would take a look at whats going wrong with the actual login.
<%unless current_user.blank? -%>
signed in
<%else -%>
not signed in
<%end-%>
Make sure that you are using the right model. For example if your model is member then you should use member_sign_in
instead of user_sign_in
.
This could be a possible explanation.
You might have a pre-existing current_user
method which stops Devise's current_user
called within user_signed_in?
from returning expected values.
如果登录工作正常,可能是因为正在进行某种缓存?
I had encountered exactly the same issue and solved it by doing $bundle exec rails g devise user
again. My problem was devise_for users
was somehow missing in the routing file.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.