dee*_*dee 7 ruby ruby-on-rails
可以安全地假设!object.nil? == object.present?在Rails中,或者有没有问题?这是一个场景:
def signed_in?
!current_user.nil? # Would current_user.present? mean the same thing here?
end
def sign_in(user)
cookies[:token] = user.token
self.current_user = user
end
def current_user
@current_user ||= User.find_by(token: cookies[:token]) if cookies[:token]
end
Run Code Online (Sandbox Code Playgroud)
.present?是否定的.blank?,这是相似的但绝对独特的.nil?.
.nil?仅评估对象是否NilClass.
.blank?计算结果为true评估一个字符串,它不为空,并且可以(或可以不)包含空格时.
这对你的问题来说是多余的,但它可能很容易注意到.blank?并且.present?是Rails方法,而.nil?纯粹是Ruby.
编辑:
如果,在你的例子中,object等于false,那么不,假设这是不安全的!object.nil? == object.present?.但是,如果object实际上是Ruby/Rails对象,则可以安全地假设该语句将评估为true.
!false.nil? == false.present? #=> false
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2498 次 |
| 最近记录: |