在下面的查询我得到的对象作为返回值(并因此检查使用.nil没有结果工作得很好:ActiveRecord ::关系问题检查是否为零? - Rails的3.1
store = Store.where(:some_id => myobj.some_id.to_i).first
unless store.nil?
但在这接下来的代码中,我得到的返回类型? ActiveRecord的::关系,并检查使用.nil?失败!
existing_store = Store.where(:some_str => myobj.some_str).not_hidden().active()
if existing_store.nil?
1.这是为什么?
2.在这种情况下,我该如何检查结果?
3.我怎么能检查是否有记录,使用find()或者()
的Rails 3.1确实令这混乱的时候一般返回。
'not_hidden'和'active'的范围我认为不是问题的行为?而调用'#nil?'究竟返回的是什么? – tbuehlmann
是的,那些是范围......并调用.nil?总是为false,因为返回值是一个空数组(因此从不nil) – Hopstream
正如下面已经建议的那样,我会使用'#empty?'。 – tbuehlmann