Tob*_*i89 8 database activerecord ruby-on-rails ruby-on-rails-3
我在rails上使用ruby并尝试检查查询是否返回值.
这是查询:
@search = Customer.find_by_name($login_name)
Run Code Online (Sandbox Code Playgroud)
如果查询找到结果,一切都很好,但我怎么能对空结果做出反应呢?
我试过了:
if @search.empty?
flash[:notice] = 'Username nicht bekannt'
redirect_to :action => :login
end
Run Code Online (Sandbox Code Playgroud)
但我得到一个错误:
undefined method `empty?' for nil:NilClass
Run Code Online (Sandbox Code Playgroud)
任何想法出了什么问题?
谢谢!!!
Rah*_*arg 28
使用它来检查nil和空案例:
@search.blank?
Run Code Online (Sandbox Code Playgroud)
对于相反的情况(NOT nil和NOT empty),请使用.present?:
@search.present? #equivalent of !@search.blank?
Run Code Online (Sandbox Code Playgroud)
您的查询返回的原因nil
,而不是empty
为:
Customer.find_by_name($login_name)
Run Code Online (Sandbox Code Playgroud)
总是返回一个对象的结果,Customer
或者nil
如果没有这样的结果,
而类似的东西:
Customer.where(:name=>$login_name)
Run Code Online (Sandbox Code Playgroud)
将ActiveRecord::Relation
始终返回您(可能有0-n结果).和empty?
方法将工作
归档时间: |
|
查看次数: |
21312 次 |
最近记录: |