current_user.present和user_signed_in之间有什么区别?

时间:2017-07-30 10:13:40

标签: ruby-on-rails ruby

研究设计,并想知道

之间的区别
<% if current_user.present? %>

<% if user_signed_in? %>

1 个答案:

答案 0 :(得分:4)

不,没有什么区别。

查看user_signed_in?的元编程实现:

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

User模型进行身份验证后,这将解析为:

def user_signed_in?
  !!current_user
end

注意:如果!!current_usertruecurrent_user,则nil会返回false。这与present?所做的完全相同。