プログラミングマガジン

プログラミングを中心にIT技術をできるだけわかりやすくまとめます。

  • ホーム
  • Ruby on Rails
  • 【Ruby on Rails】空文字、nilチェックの種類(present?、empty?…
 
 
     
  • サーバー言語  
    • Python
    • Ruby
    • PHP
    • SQL
  •  
  • インフラ  
       
    • AWS
    •  
    • 基本
    • Git
  • Web
       
    • Web開発
    • JavaScript
    • Vue.js
    • React
  •  
  • 設計  
       
    • 実装設計
    • DB設計
  • 問い合わせ
  

【Ruby on Rails】空文字、nilチェックの種類(present?、empty?、blank?、nil?)、ActiveSupport

07.26

  • miyabisan2
  • コメントを書く

この記事は2分で読めます

Railsでの空文字チェックをすることが普通ですが色々種類があるので注意しましょう。

empty?

Ruby標準メソッドです。文字列か配列の中身が空の場合にtrueを返します。空白のみの文字列("  ")はfalseを返しますし、nilやtrueやfalse、Integer(数値)には対応していません。(NoMethodErrorになります。)

nil?

Ruby標準メソッドです。文字列や配列が存在しない場合のみ(nilの場合のみ)にtrueを返します。

blank?

ActiveSupport(Rails)で拡張されたメソッドです。nil、空文字("")、空白のみの文字列("   ")、空配列、空ハッシュ、false等でもtrueを返してくれます。対応できる範囲が広いので所構わず使うと意図が読みづらくなってしまうため注意が必要です。

特に空白のスペースなどがtrueが帰ってくるのは注意と言えるでしょう。(empty?ではfalseが帰るので。)

present?メソッドの逆です。オブジェクトが存在しなければtrue、存在すればfalseを返す。

用途

nilと空文字と空白のみの文字列を同様の評価としたい場合に使います。nilと空文字や空白のみの文字列で評価を分けたい場合はnil?やempty?を使うようにしましょう。読み手に意図が明確に伝わります。

present?

ActiveSupport(Rails)で拡張されたメソッドです。blank?の逆で、!blank?とは同じ意味になります。

オブジェクトの値が存在するかどうか真偽を返します。オブジェクトが存在すればtrue、存在しなければfalseを返す。(具体的にはnil、false、""、" "、[]、{}の場合はfalseになる。)

なお、数値の0(ゼロ)は値が存在するとみなされるので注意です。

ActiveSupportとは?

Railsを使って開発をする上で便利なメソッド等をまとめたライブラリです。純粋なRubyには存在しません。

ActiveSupportが提供している機能

present?メソッド、blank?メソッドの他に以下のような機能があります。

starts_with?メソッド

実際のRubyのstart_withメソッドと同じですが「s」がつくので注意です。

ends_with?メソッド

実際のRubyのend_withメソッドと同じですが「s」がつくので注意です。

スポンサーリンク
  • 2020 07.26
  • miyabisan2
  • コメントを書く
  • Ruby on Rails
  • Tweets Twitter
  • このエントリーをはてなブックマークに追加
  • LINEで送る

関連記事

  1. 2019 11.30

    【Ruby on Rails】モデルの状態を自動制御する「コールバック」、「フィルタ(Filter)」について

  2. 2020 09.16

    【Ruby on Rails】ビューヘルパー(エスケープ関連、タグ関連など)

  3. 2019 12.01

    【Rspec】Capybaraの構文まとめ

  4. 2019 12.01

    【Rspec】RspecのインストールやRailsで使うための準備や実行方法

  5. 2018 06.20

    【Ruby on Rails】レイアウトの共通デザインを定義する。

  6. 2019 12.14

    【VSCode】Railsのデバッグ設定(Mac)

  • コメント ( 0 )
  • トラックバック ( 0 )
  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

返信をキャンセルする。

【Ruby on Rails】「ActionText」…

【MySQL】基本、初期設定(DB作成等)

RETURN TOP

著者プロフィール

エンジニア歴10年で過去に業務系、Webデザイン、インフラ系なども経験あります。現在はWeb系でフロントエンド開発中心です。

詳細なプロフィールはこちら

スポンサーリンク

カテゴリー

  • Android
  • AngularJS
  • API
  • AWS
  • C++
  • CSS
  • cursor
  • C言語
  • DDD
  • DevOps
  • Django
  • Docker
  • Figma
  • Git
  • GitLab
  • GraphQL
  • gRPC
  • Hasura
  • Java
  • JavaScript
  • Kubernetes
  • Laravel
  • linux
  • MySQL
  • Next.js
  • nginx
  • Node.js
  • NoSQL
  • Nuxt.js
  • Oracle
  • PHP
  • Python
  • React
  • Redux
  • Rspec
  • Ruby
  • Ruby on Rails
  • Sass
  • Spring Framework
  • SQL
  • TypeScript
  • Unity
  • Vue.js
  • Webサービス開発
  • Webデザイン
  • Web技術
  • インフラ
  • オブジェクト指向
  • システム開発
  • セキュリティ
  • その他
  • データベース
  • デザインパターン
  • テスト
  • ネットワーク
  • プログラミング全般
  • マイクロサービス
  • マイクロソフト系技術
  • マルチメディア
  • リファクタリング
  • 副業
  • 未分類
  • 業務知識
  • 生成AI
  • 設計
  • 関数型言語
RETURN TOP

Copyright ©  プログラミングマガジン | プライバシーポリシー