Ich lerne Ruby on Rails for Africa

Railsとアフリカで苦戦するブログ

Ruby on Railsでpresent?が使いやすすぎる

present?メソッドは、blank?の反対です。

つまり、これからは

return false if !@posts.blank?

とか

return false unless @posts.blank?

とか、ちょっと直感的でないことをしなくても良いと。

つまり、こんな感じになると。

@posts = Post.all
if @posts.present?
  puts 'Postあり'
else
  puts 'Postなし'
end

すげー分かりやすいー(*´ω`*)


しかも、present?メソッドに関連したpresence?メソッドも使いやすーい。

def presence
  self if present?
end

こういう実装になっているらしく、present?メソッドがtrueなら
呼び出したObject自身のselfを、falseならnilを返すそうです。


ということは・・・

title = params[:title].present? ? params[:title] : "no title"

# が、以下のように簡略化出来る

title = params[:title].presence ||  "no title"

こんなことができちゃうらしい。


なんて便利なものが用意されているんだー

\( 'ω')/ウオオオオオアアアーーーッ!




参考
Railsエンジニアならこれだけは知っておけっていう便利メソッド - (゚∀゚)o彡 sasata299's blog
Railsでnil? blank? empty? present?を使いこなそう | TechRacho