繁体   English   中英

设计rails current_user vs user_signed_in?

[英]devise rails current_user vs user_signed_in?

我正在使用Devise on Rails 4.1我的问题是关于帮助者以及它们与会话的关系。 current_user:告诉您是否有可供该用户使用的用户会话。 user_signed_in:告诉您用户是否经过身份验证。

如果user_signed_in,我无法理解如何有一个current_user? 是假的?

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

谢谢。 理查德麦德森

user_signed_in? 是为了方便。 你的断言是正确的,如果user_signed_in? false ,永远不会有current_user

设计源代码中 ,我们可以看到:

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

user取代#{mapping}

user_signed_in? 简单地返回current_user的真实性,即如果current_usernil则返回false

current_user方法返回当前登录用户,而user_signed_in? method用于验证是否有用户登录并返回true或false。 if user_signed_in? 如果为false,则current_user方法将返回nil。

https://github.com/plataformatec/devise#controller-filters-and-helpers

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM