変数に対して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を返すメソッド。