ActiveSupport 「空文字列の場合はデフォルト文字列」を三項演算子を使わないで解決する

ものすごく当たり前な話なんですが僕はなぜかずっと気づかなかったので記念として記事にします

qiita.com

対象が空文字列の場合は何らかデフォルトの文字列、空じゃなかったら対象をそのまま使うやつ

name.present? ? name : '名無し'

ActiveSupportを入れていると様々なメソッドが拡張されるけど、 Object#presence メソッドが生える

github.com

def presence
  self if present?
end

なのでこうできる

name.presence || '名無し'

JSだと空文字列はfalse判定なので直接文字列と||を並べてしまえばいいが、Rubyの空文字列はtrueと判定される

そのためActiveSupportに頼らざるを得なくなる

やはりActiveSupportは便利、我々はRailsではなくActiveSupportを愛しているのである