要旨
# カレントユーザに所属する最新のコンテンツについて、 # 公開済みならそのタイトルを、未公開なら「(下書き)」を返す latest_title = current_user.contents.last.then { |content| content.published? ? c.title : '(下書き)' }
詳細
Object#yield_self
と Object#then
は、ブロックの中身を評価した結果を返す。主にメソッドチェインしてちょっとした処理をすることで役にたつ。
Ruby 2.5から Object#yield_self
が導入され、Ruby2.6からそのエイリアスとして Object#then
が導入された。