おもしろwebサービス開発日記

Ruby や Rails を中心に、web技術について書いています

Object#presence

rails が追加しているメソッド。真ならオブジェクト自身を返して、偽なら nil を返す。

object.present? ? object : nil.

と同じ。下記のような、パラメータをチェックして使うよくある感じのコードが

state   = params[:state]   if params[:state].present?
country = params[:country] if params[:country].present?
region  = state || country || 'US'

こんな風に一行にまとまる。便利かも?

region = params[:state].presence || params[:country].presence || 'US'

Rails 3, またはRails 2.3.8 くらいから使えます。