我正在 Rails 上使用 ruby 并尝试检查查询是否返回值。
这是查询:
@search = Customer.find_by_name($login_name)
如果查询找到结果,一切都很好,但是我如何对空结果做出反应?
I tried:
if @search.empty?
flash[:notice] = 'Username nicht bekannt'
redirect_to :action => :login
end
但我收到一个错误:
undefined method `empty?' for nil:NilClass
任何想法出了什么问题吗?
谢谢你!!!
使用它来检查 nil 以及空情况:
@search.blank?
对于相反的情况(非零和非空),使用。展示? http://api.rubyonrails.org/classes/Object.html#method-i-present-3F:
@search.present? #equivalent of [email protected] /cdn-cgi/l/email-protection?
您的查询返回的原因nil
代替empty
is :
Customer.find_by_name($login_name)
始终返回对象的一个结果Customer
or nil
如果没有这样的结果,
而类似的东西:
Customer.where(:name=>$login_name)
会归还你ActiveRecord::Relation
(可以有 0-n 个结果)总是。和empty?
方法将对其起作用
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)