Quantcast
Channel: Ruby on Railsの記事一覧|TechRacho by BPS株式会社
Viewing all articles
Browse latest Browse all 1391

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

$
0
0

更新情報

  • 2011/11/26: 初版公開
  • 2023/11/27: 更新

Rails入門です。

require 'active_support'で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も書けるしすっきり。

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

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

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

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

追記(2023/11/27)

その後Active Supportでpresenceメソッドも追加されています。

Rails: present?より便利なActiveSupportのpresenceメソッド(翻訳)

関連記事

Rubyにおけるunlessとコードの読みやすさについて

Railsでbefore_filter/before_actionがアクションを中止する仕組みを読んでみる

The post Railsでnil? blank? empty? present?を使いこなそう first appeared on TechRacho.


Viewing all articles
Browse latest Browse all 1391

Trending Articles