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