Ruby   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ruby-on-rails – 是!object.nil? == object.present?在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

解决方法

.当下?是.blank?的否定,它与.nil?相似但绝对独特.

.零?仅评估对象是否为NilClass.

.空白?在评估非空字符串并且可能(或可能不)包含空格时,求值为true.

这对你的问题来说是多余的,但是注意到.blank可能很方便吗?和.present?是Rails方法,而.nil?是纯粹的Ruby.

编辑:

如果,在你的例子中,object等于false,那么不,假设!object.nil是不安全的? == object.present?.但是,如果object实际上是一个Ruby / Rails对象,那么可以安全地假设该语句将评估为true.

!false.nil? == false.present? #=> false

大佬总结

以上是大佬教程为你收集整理的ruby-on-rails – 是!object.nil? == object.present?在Rails?全部内容,希望文章能够帮你解决ruby-on-rails – 是!object.nil? == object.present?在Rails?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。