nil?
nil?はRubyのメソッドです。
nilの場合true、それ以外はfalseを返します。
""(空文字)、" "(空白)、[](空配列)、{}(空ハッシュ)などもfalseになるため、純粋にnilをチェックしたい場合に利用します。
empty?
empty?はRubyのメソッドです。
""(空文字)、[](空配列), {}(空ハッシュ)の場合はtrueになります。" "(空白)の場合はfalseです。
nil、数字、真偽値に対してempty?を実行するとNoMethodErrorが発生します。
empty?は文字列や配列やハッシュなど、なにかしらの値の入るオブジェクトであるという前提のもと、値が空かどうかを判定します。
ですので、" "(空白)のように『存在するオブジェクトの中身が空かどうかを判定したい』場合がempty?の使いどころですが、例外が発生する可能性のあるメソッドなので使用する際は注意が必要です。
blank?
blank?はRailsのメソッドです。
nil, false, ""(空文字), " "(空白), [](空配列), {}(空ハッシュ)の場合にtrue、それ以外の場合にfalseを返します。
真偽値の判定結果は!present?と等価です。
nilもしくはオブジェクトにデータが存在しない場合を判定する際にblank?を利用します。
present?
present?はRailsのメソッドです。
present?は!blank?と等価です。
blank?と逆のことをしたい場合にpresent?を利用します。
present?と似たメソッドにpresenceがあります。
present?とpresenceの違いの詳細解説は【Rails】present?とpresenceの違いと使いどころで紹介しています。
exists?
exists?はSQLのexists句に該当するRailsのメソッドです。
ActiveRecord::Relationの存在有無を判定をする場合にexists?を利用します。
ActiveRecord::Relationに対してpresent?を実行するとパフォーマンス面で問題があります。1 2



