変数に対してtrueもしくはfalseを返すメソッド。全てではないかもしれませんが、わかる範囲で書き出してみました。
今後、追記・修正していくかもしれません。
条件分岐式でよく使う真偽判定をするメソッド
present?
変数.present?変数に値があればtrue、なければfalse、を返すメソッド。
配列やハッシュの器だけで、中身がないときもfalse。
また、変数そのものが存在しないときもfalse。
nil?
変数.nil?変数そのものが存在しないとき、つまりnilであればtrue、nilでなければfalse、を返すメソッド。
変数の値が何かは考慮されない。空文字( “” )や、空白文字列( “ ” )、ハッシュの器だけでもfalseを返す。
empty?
変数.empty?変数の値が空であればtrue、値があればfalse、を返すメソッド。
空文字は、trueで返ってくる。配列やハッシュも器だけで値が何もなければtrue。
空白文字列はfalse。
String、Array、Hash等に定義されているメソッド。
blank?
変数.blank?変数に値がない、もしくは変数そのものが存在しない場合にtrue、値があればfalse、を返すメソッド。
present?と真逆の動きをするメソッド。present? = !blankとなる。
また、上記 nilとempty?の両方の機能をもったメソッドになる。
exists?
モデル名.exists?(条件)
例1)Item.exists?(price: 500)
例2)User.exists?(name: '佐藤', age: 20)
例3)User.exists?(name: ['佐藤','田中'])
例4)Item.exists?(5)指定した条件の値が、データベースに存在すればtrue、存在しなければfalse、を返すメソッド。
値の絞り込みもできる。
例1は、itemテーブルのpriceカラムに[ 500 ]という値があればtrue。
例2 は、nameカラムに[ 佐藤 ]かつ、ageカラムに[ 20 ]という値があればtrue。どちらかが満たない場合false。
例3は、nameカラムに、佐藤もしくは田中という値があればtrue。どちらかが該当すればtrueとなる。
例4は、指定した整数の主キー(idなど)をもつ値があればtrue。
真偽判定ではないが、類似した動きをするメソッド
presence?
変数.presence?上記、present?メソッドと表記は似ているが、異なる返し方をするメソッド。
変数に値が存在すれば「値そのものを返す」、存在しなければnilを返すメソッド。



