tawara's blog

雑記。個人の見解です。

railsでテーブルにレコードが一つでもあるかを調べるときは exists? が使える

モデルにレコードが一つでもあるかどうかで処理を分岐したいときがある。exists? を使うと便利。

たとえばWorkモデルの場合、このようにシンプルに書ける。

Work.exists?

Model.where(name: 'Yamada').exisits? のような使い方は経験がある。けれど、そもそもテーブルにレコードがあるかどうかを調べることもできたことを知った。便利。present? を使うこともできるが処理速度が、exists?よりは悪いらしい。

参考

exists? (ActiveRecord::FinderMethods) - APIdock

ActiveRecordでは present? の代わりに exists? を使おう - Qiita

(了)