Railsでnil? blank? empty? present?を使いこなそう

Rails入門です。

active_supportを読み込んだrubyでは、真偽判定に以下のメソッドが使えます。

nil?
Rubyの標準メソッド。nilの場合のみtrueを返し、それ以外はfalseを返す。nilとfalseを判別したい場合などに、==演算子を使わずに書ける。
empty?
String や Array に実装されているメソッド。空の文字列や空の配列の場合にtrueを返す。nilに対して呼び出すとNoMethodErrorが発生する。
blank?
nil? or empty? のようなメソッド。nilまたは空のオブジェクトを判定できる。
present?
!blank? を実行するメソッド。unless hoge.blank? とするくらいなら、if hoge.present? としたほうがelsifも書けるしすっきり。

ActiveRecordの結果がこれらを実装してくれているおかげで、以下のように便利に記述できます。

@users.count == 0 のような無駄な記述がなくてすっきりしていますね。

@users = User.all
if @users.present?
  ...
else
  puts "no users"
end

or!を使いすぎると可読性が下がるので、blank?present?は有効活用しましょう!

関連記事

Ruby on RailsによるWEBシステム開発、Android/iPhoneアプリ開発、電子書籍配信のことならお任せください この記事を書いた人と働こう! Ruby on Rails の開発なら実績豊富なBPS

この記事の著者

baba

ゆとりプログラマー。 高校時代から趣味でプログラミングを初め、そのままコードを書き続けて現在に至る。慶應義塾大学環境情報学部(SFC)卒業。BPS設立初期に在学中から参加している最古参メンバーの一人。得意分野はWeb全般、Ruby on Rails、Androidアプリケーションなど。最近はBlinkと格闘中。軽度の資格マニアで、情報処理技術者試験(高度10区分)などを保有。

babaの書いた記事

週刊Railsウォッチ

インフラ

Rubyスタイルガイドを読む

BigBinary記事より

ActiveSupport探訪シリーズ