2

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ステートメントが true になります。

注意して呼び出しを避ける必要があることはわかっていますが、クエリからの戻り結果が (またはそうでない)かどうallかを確認するためのレール風の呼び出しはありますか?allnil

4

1 に答える 1

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
于 2012-07-09T22:11:33.160 に答える