0
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

いつも忘れるRailsでの nil? empty? blank? present? の使い分け

Last updated at Posted at 2019-05-21

前置き

Railsで、StringやArrayの値のチェックをする際、nil? empty? blank? present? の使い分けをいつも調べ直しているので、共有メモとして投稿します。 (調べればたくさん記事は出てきますが...)

nil?

値がnilかどうか判定するメソッドです。
nilの場合は true
空のオブジェクト、または何かしら値が存在する場合は false となります。

nil.nil?
=> true

"".nil?
=> false

"hoge".nil?
=> false

empty?

空のオブジェクトかどうかを判定するメソッドです。
空の場合は true
値が存在する場合は false となります。
また、nilだった場合は、 NoMethodError が発生します。

"".empty?
=> true

"hoge".empty?
=> false

nil.empty?
=> 
Traceback (most recent call last):
     1: from (irb):1
NoMethodError (undefined method `empty?' for nil:NilClass)

blank?

空のオブジェクト、またはnilのオブジェクトかどうかを判定するメソッドです。
empty? || nil? と同等)
空のオブジェクト、またはnilのオブジェクトの場合は true
値が存在する場合は falseとなります
ただし、TAB文字・スペースは trueが返ります。

nil.blank?
=> true 

"".blank?
=> true

"hoge".blank?
=> false

"\t".blank? #TAB文字
=> true

" ".blank? #半角スペース
=> true

" ".blank? #全角スペース
=> true

present?

値が存在するかどうかを判定するメソッドです。
(blank?の反転のため !blank? と同等)
値が存在する場合は true
空のオブジェクト、またはnilのオブジェクトの場合は false となります

"hoge".present?
=> true

nil.present?
=> false 

"".present?
=> false
0
3
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?