Railsでnil? empty? blank? present? を使う

Railsnilやempty判定をしたい時に使うメソッド

nil?

Rubyの標準メソッド
nilの場合だけtrueを返し、それ以外はfalseを返す。

nilはオブジェクトが存在していないということ
name = ""
name.nil? # nameは空だが存在するためfalse

age.nil? # ageは存在しないためtrue

empty?

RubyでArrayやStringに実装されているメソッド
文字列や配列が空の場合trueを返す。
nilに対して呼び出すとNoMethodErrorが発生する。

emptyはオブジェクトが空だということ
name = ""
name.empty? # nameは空なのでtrue

age = 22
age.empty? # ageが空ではないのでfalse

blank?

Railsで使えるメソッド
nil? or empty? の振る舞いをする。
オブジェクトがnilか空の時trueを返す。

name = ""
name.blank? # nameが空なのでtrue
age.blank? # ageがnilなのでtrue

present?

!blank?を実行するメソッド

unless name.blank?
end

# 上のコードは以下ように書ける

if name.present?
end