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结果).空的?方法将对它起作用 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |