初めに こんにちは。ユニファのバックエンドエンジニア、シュウです。 最近、社内のRuby on Railsのソースコードを調査している中で、レコードの存在チェックによく使われている3つのメソッドを見ました。 present? exists? any? Ruby on Railsのエンジニアになってから、「存在チェックの際にはexists?やany?の方がパフォーマンスが優れている」という話をよく聞きますが、実際に調査してみると意外にも興味深い結果が得られました。この記事では、present?、exists?、any?の3つのメソッドの挙動、パフォーマンス、および適切な使用場面についてまとめました。 結論から言うと 単純な存在チェックを行いたい場合は、present?よりexists?とany?を使う方が適しています。 ブロックを使用したい場合は、any?を使います。 存在チェック後にレコー