真偽判定
真偽判定(nil? empty? blank? present?)
真偽判定の便利な関数と注意点
$ rails c irb(main):001:0> nil.nil? => true irb(main):002:0> "".empty? => true irb(main):003:0> " ".empty? => false irb(main):004:0> "".blank? => true irb(main):005:0> " ".blank? => true irb(main):006:0> "abc".blank? => false irb(main):007:0> " ".present? => false irb(main):008:0> "abc".present? => true $
nil? | empty? | blank? | present? | |
---|---|---|---|---|
nil | true | NoMethodError | false | false |
true 真 |
false | NoMethodError | false | true |
false 偽 |
false | NoMethodError | true | false |
[] 空配列 |
false | true | true | false |
{} 空オブジェクト |
false | true | true | false |
"" 空文字 |
false | true | true | false |
" " 半角スペースのみ |
false | false | true | false |
" " 全角スペースのみ |
false | false | true | false |
present? と presence の違い
メソッド | オブジェクトが存在する場合 | オブジェクトが存在しない場合 |
---|---|---|
present? | true | false |
presence | self | nil |
ActiveRecordレコードでの存在確認
メソッド | 確認 |
---|---|
present? | 検索結果に対して present? を実行。 |
exists? | LIMIT 1 が付く。存在チェックするだけなら exists?の方がパフォーマンスが良い。 |