Ruby on Railsでオブジェクトの状態を判断するためにはnil?
、empty?
、blank?
、present?
の4つのメソッド使用します。
以下のテーブルでは、これらのメソッドの使い分けを示します。
メソッド | nil | "" | [] | ["a"] | {} | {key: "value"} | false |
---|---|---|---|---|---|---|---|
nil? |
true | false | false | false | false | false | false |
empty? |
false | true | true | false | true | false | false |
blank? |
true | true | true | false | true | false | false |
present? |
false | false | false | true | false | true | false |
使い分けのポイント
-
nil?
: オブジェクトがnil
かどうかを確認したい場合に使用します。nil
以外の値はすべてfalse
を返します -
empty?
: 配列やハッシュなどのコレクションが空であるかどうかを確認するために使用します -
blank?
:nil
、空文字列、空白文字列、空の配列やハッシュを含む、すべての「空」の状態を確認するために使用します -
present?
:blank?
の逆で、オブジェクトが存在し、空でないかを確認するために使用します