Rails devise: user_signed_in? not working

后端 未结 6 2099
终归单人心
终归单人心 2020-12-03 14:21

I have this in my view:

<% if user_signed_in? %>
<%= current_user.email %>
<% else %>
<%= link_to \"Sign in\", new_user_session_path %&g         


        
相关标签:
6条回答
  • 2020-12-03 14:43

    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.

    0 讨论(0)
  • 2020-12-03 14:52

    Did you use devise's before action in your controller?

    before_action :authenticate_user!
    
    0 讨论(0)
  • 2020-12-03 14:52

    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.

    0 讨论(0)
  • 2020-12-03 14:56

    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-%>
    
    0 讨论(0)
  • 2020-12-03 15:01

    If login is working properly, it could be because of some kind of caching going on?

    0 讨论(0)
  • 2020-12-03 15:07

    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.

    0 讨论(0)
提交回复
热议问题