加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails检查查询结果是否为空(Model.find)

发布时间:2020-12-17 01:19:38 所属栏目:百科 来源:网络整理
导读:我在rails上使用 ruby并尝试检查查询是否返回值. 这是查询: @search = Customer.find_by_name($login_name) 如果查询找到结果,一切都很好,但我怎么能对空结果做出反应呢? 我试过了: if @search.empty? flash[:notice] = 'Username nicht bekannt' redirec
我在rails上使用 ruby并尝试检查查询是否返回值.

这是查询:

@search = Customer.find_by_name($login_name)

如果查询找到结果,一切都很好,但我怎么能对空结果做出反应呢?

我试过了:

if @search.empty?
  flash[:notice] = 'Username nicht bekannt'
  redirect_to :action => :login
end

但我得到一个错误:

undefined method `empty?' for nil:NilClass

任何想法出了什么问题?

谢谢!!!

解决方法

使用它来检查nil和空案例:
@search.blank?

对于相反的情况(非零和非空),使用.present?:

@search.present? #equivalent of !@search.blank?

您的查询返回nil而不是空的原因是:

Customer.find_by_name($login_name)

如果没有这样的结果,则总是返回对象Customer的一个结果,或者返回nil,

而像这样的东西:

Customer.where(:name=>$login_name)

将始终返回ActiveRecord :: Relation(可能有0-n结果).空的?方法将对它起作用

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读