オブジェクトとは?
オブジェクトは「箱」のようなもの。
そこで、存在チェックをするときには、
- その箱の中身があるのか?
- そもそも箱そのものがあるのか
という観点で見ていく。
#箱そのものは存在していないのか? nil?
obj.nil?
#箱の中身は空なのか? empty?
obj.empty?
#箱そのものは存在していないのか?してても中身は空なのか? blank?
「箱が存在していないか、または中身が存在していない状態」
ちなみに、Railsのみのメソッド
obj.blank?
# 同義
obj.nil? || obj.empty?
#箱そのものは存在しているし、かつ中身も空ではないか? present?
「箱もある、かつ中身もある状態」
ちなみに、Railsのみのメソッド
obj.present?
#同義
!obj.nil? && !obj.empty?
obj.blank?