我在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结果).空的?方法将对它起作用