我想知道Rails数据库查询是否返回一行(我不需要知道行中的什么,只是返回一行)。
我可以这样做:
academic_year = AcademicYear.find_by_raw_input(year)
if academic_year
...
end
但如果我输入错误并执行find_all_by
:
academic_year = AcademicYear.find_all_by_raw_input(year)
然后返回一个空数组,这会导致if
语句为真。
我知道,我应该小心并且只是避免all
调用,但是有一个rails-esque调用来查看来自任何查询(all
或否)的返回结果是否为{{ 1}}?
答案 0 :(得分:4)
正如您所说,find_by_...
将返回nil
,find_all_by_...
将返回[]
。我认为你要找的是.blank?
。
if !academic_year.blank?
#...
end
在控制台
中> AcademicYear.find_by_raw_input(some_non_existent_year).blank?
=> true
> AcademicYear.find_all_by_raw_input(some_non_existent_year).blank?
=> true