今回はオブジェクトの存在確認を行うメソッド「blank?」と「present?」がRuby単体コードでは使えなかったことについて備忘録としてまとめておきます。
タイトル通りの話なのでさらっと流して見ていただけると。
存在確認メソッド4選
Rails(Ruby)の代表的なオブジェクトの存在確認メソッドは以下の4つ。
- nil?
- empty?
- blank?
- present?
それぞれの用途を簡単にまとめると以下の通りになります。
- nil?は存在そのものがあるかどうかを確認するメソッド
- empty?は入れ物は存在するが中身があるかどうかを確認するメソッド
- blank?は入れ物と中身の存在確認をするメソッド(nil?とempty?の組み合わせ)
- present?はblank?と反対の意味を持つメソッド
Rubyではblank?とpresent?が使えない
Ruby単体コードではblank?メソッドとpresent?メソッドを使用することはできません。
理由は簡単で、nil?とempty?はRubyの標準メソッドである一方、blank?とpresent?はRailsで拡張されたメソッドであるためです。
Railsドキュメントに記載がありましたので、リンクを貼っておきます。
まとめ
- Ruby単体コードではblank?メソッドとpresent?メソッドは使用できない
- nil?とempty?はRubyの標準メソッドである一方で、blank?とpresent?はRailsで拡張されたメソッドである
参考
今回はオブジェクトの存在確認を行うメソッド「blank?」と「present?」がRuby単体コードでは使えないことについて備忘録としてまとめてみました。改めてRailsの便利さに気付かされた出来事になりました。