Rubyでは、プログラムの処理によっては、empty? と nil? の両方をチェックすることがあります。
例えば、nil?の可能性があるものに対して、empty?チェックだけを行うと下記のエラーが出ますよね。
> a = nil > a.empty? NoMethodError: undefined method `empty?' for nil:NilClass
Railsでは、両方をまとめてチェックしてくれる便利な blank? があります。
ただし、Rails以外で利用するには、モジュールを require する必要があります。
irbで実行するとこんな感じです。
> require 'rubygems' > require 'active_support' > > a = nil > b = "" > c = [] > > a.blank? => true > b.blank? => true > c.blank? => true
ちなみにrequireしなかった場合はこんなエラーになります。
> a.blank? NoMethodError: undefined method `blank?' for nil:NilClass > b.blank? NoMethodError: undefined method `blank?' for "":String
なお、Rails2とRails3ではRequireするモジュールが異なるようなので、ご注意ください。
上記はRails2の例です。
Rails3はまだ入れていないので確認できていません…。
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。