2361226068_cab10f017a_z

Railsでnil? blank? empty? present?メソッドの違い


どれもtrueかfalseかnilを判定するメソッドです。

nil?とempty?はrubyのメソッドであり、blank?とpresent?はrailsで拡張されたメソッドです。なので、blank?とpresent?はRailsでしか使えません。

まず1つ1つの意味をみていきましょう。

 

nil?

nilなので何も存在してない(配列や文字列などの入れ物もない)場合にtrueになります。

nilの場合のみtrueを返し、それ以外はfalseを返します。

例えば、以下の場合は入れ物があるので、falseです。

 

empty?

入れ物があり、それが空の場合はtrueです。

空の文字列や空の配列の場合にtrueを返します。nilに対して呼び出すとNoMethodErrorが発生します。

 

blank?

nil?、もしくはempty?のどちらかがTrueであればTrue、nil? or empty? のようなメソッド。

 

present?

!blank?と一緒。

 

まとめ

何もないか確認したいときはnil?

入れ物があって空か確認したいときはempty?

nil?、もしくはempty?を確認したければblank?

!blank?と書くならpresent?

本サイトが運営するWebデザインのオンラインスクールが公開中!
以下のリンクからお申込みで、特別料金の70%OFF!

未経験からプロのWebデザイナーになる! 400レッスン以上の完全マスターコース
こちらのコースは全くの未経験の方が、プロのWebデザイナーとして働けるレベルになることを目的としたコースです。
・全422レッスン & 42時間! 通学スクール80万円相当の内容
・授業×チャレンジ課題で実践的なスキルが身につく!
・過去1100名以上のスクール卒業生を輩出した、 Webサービス運営企業・デザイナー輩出企業だからこそ作れるプログラム

Webやアプリの最新デザインツール Sketch3 |100レッスンの完全マスターコース
Sketch3未経験からプロレベルを目指す、充実したコースです。
Sketch3の単なる機能説明をするような、つまらないコースではなく、アイコン制作、ボタン作成、メインビジュアル制作、Webページの制作など、実際の制作をしながら実践力を身につけます。
1000名以上の卒業生がいる実績ある日本のWebデザインスクールが提供しています。


kunishii

國重侑輝 Campus inc CEO。京都でスタートアップが生まれ、育ち、旅立つ場所を作ってます。最近の興味は、Ruby・Rails / UX / React / スタートアップファイナンス /グロースハック / AWS / グラフデータベース / 自然言語処理など。 http://campus-inc.org

Next Article女性的なサイトにぴったりなかわいさ&清潔感のある無料パターン素材まとめ