ActiveRecord ::关系问题检查nil? - Rails 3.1

Hop*_*eam 1 ruby ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1

在下面的查询中,我将对象作为返回值(因此使用.nil检查没有结果工作正常:

  store = Store.where(:some_id => myobj.some_id.to_i).first
  unless store.nil?
Run Code Online (Sandbox Code Playgroud)

但是在下一个代码中,我得到了ActiveRecord :: Relation的返回类型并使用.nil进行检查失败!

existing_store = Store.where(:some_str => myobj.some_str).not_hidden().active()
if existing_store.nil?
Run Code Online (Sandbox Code Playgroud)

那是为什么?

2.在这种情况下,如何检查无结果?

3.使用find()或where()时,如何检查一般没有记录返回

Rails 3.1确实令人困惑.

Mar*_*sen 7

如果真的是(单个实例),则使用blank?,nil?是真的,但是你的第二个例子总是会返回一个数组,如果没有结果可能是空的,但是仍然是一个数组.检查空数组,空字符串,nil和false值.nilNilClassblank?

如果您遇到blank?不符合预期的问题,可以查看first.nil?