😺
Rails の真偽判定メソッド
はじめに
「Rubyの真偽判定メソッド」ってタイトルにしようと思ったら、なんか巷で出てくる真偽値のアコレコが Ruby の標準メソッドだったり、Rails による拡張メソッドだったり、そもそもこれってなんだっけってなったのでまとめていく。
代表的な登場人物
- nil? → Ruby標準メソッド
- empty? → Ruby標準メソッド
- blank? → rails拡張メソッド
- present? → rails拡張メソッド
「rails拡張メソッド」は、Rubyだけの環境では使えないので注意
nil?
nilの時だけ true。
empty?
空文字と空配列の場合に true。それ以外は基本的に false だけど、nil だと NoMethodError
になるらしい。
blank?
nil?
+ empty?
的な拡張メソッド。trueになる条件は下記の通り。
- nil
- ""(空文字)
- " "(半角スペース)
- [](空配列)
- {}(空ハッシュ)
present?
blank?
の逆。つまり !blank?
になる。
Discussion