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 次 |
| 最近记录: |