😺

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