目的
Railsでは多くの真偽判定メソッドがあるので、まとめる
前提
- 変数データが何もない状態のnullは、rubyではnilという.。
- rubyのif文などでメソッドを使わず、変数単体で真偽判定する場合、
変数が「false」と「nil」のときだけがfalseで、他はtrue。
他の言語ではfalseが多い「0」などもtrue。
混乱するので記述。
真偽判定メソッド
nil?
変数.nil?
Ruby標準メソッド。nilの場合にtrueを返して、それ以外はfalse。
empty?
変数.empty?
Rubyの標準メソッド。空の文字列、空の配列の場合にtrueを返す。
nilだとNoMethodError発生
blank?
変数.blank?
Railsで拡張されたメソッドなので、Railsでしか使えない。
nil?+empty?のメソッド。nilまたは空のオブジェクトの時にtrueを返す。
present?
変数.present?
Railsで拡張されたメソッドなので、Railsでしか使えない。
blank?の逆のメソッドで、nilまたは空のオブジェクトでない時にtrueを返す。
少し番外
exists?
オブジェクト.exists?(条件)
# 例
User.exsists?(name: '田中')
Railsで拡張されたメソッドなので、Railsでしか使えない。
指定した条件のレコードがデータベースに存在するかを真偽地で返すメソッド。