ものすごく当たり前な話なんですが僕はなぜかずっと気づかなかったので記念として記事にします
対象が空文字列の場合は何らかデフォルトの文字列、空じゃなかったら対象をそのまま使うやつ
name.present? ? name : '名無し'
ActiveSupportを入れていると様々なメソッドが拡張されるけど、 Object
に #presence
メソッドが生える
def presence self if present? end
なのでこうできる
name.presence || '名無し'
JSだと空文字列はfalse判定なので直接文字列と||
を並べてしまえばいいが、Rubyの空文字列はtrueと判定される
そのためActiveSupportに頼らざるを得なくなる
やはりActiveSupportは便利、我々はRailsではなくActiveSupportを愛しているのである