2015-12-02 113 views
1

我正在使用Devise on Rails 4.1 我的问题是关于助手及其与会话的关系。 current_user:告诉您是否有用户会话可供用户使用。 user_signed_in:告诉你用户是否被认证。devise rails current_user vs user_signed_in?

我不明白如果user_signed_in可以有一个current_user?是假的?

这两种方法有什么区别,它与会话有什么关系。

THanks。 Richard Madson

回答

4

user_signed_in?被提供为方便。如果user_signed_in?false,那么您的说法是正确的,因此永远不会有current_user

devise source code,我们可以看到:

def #{mapping}_signed_in? 
    !!current_#{mapping} 
end 

(其中user采取的#{mapping}的地方)

user_signed_in?只是返回的current_user的感实性,即,如果falsecurrent_usernil

相关问题