先日の代入記事の発展編
環境
rails (5.2.2) activesupport (= 5.2.2)
presenceとは
presenceメソッドは、present?がtrueの場合は自身のレシーバを返し、falseの場合はnilを返します。 - Active Support コア拡張機能 - Rails ガイド - presence
使い方
value1 value2 value3 があり、1から順に入っていれば値を result に代入したい場合
result = value1.presence || value2.presence || value3.presence
|| は nil の場合右式の評価値を使うので左から順に評価されていく。
注意点
presence は present? が trueであれば値を返すため "" 、 [] 、 {} は false扱いになるので、空文字などの空の値を評価したい場合などは注意が必要。