link_to_ifとは?
与えられた条件がtrueならリンクにfalseならリンクにしないという振る舞いをするメソッド。
flat_mapを実際利用した場面
link_to_if
を使わない場合、下記のようなコードになっていた。冗長なのと、なんかダサい。
- if hoge.present?
= link_to 'リンク', hoge_path
- else
ー
link_to_if
を使った場合
= link_to_if hoge.present?, 'リンク', hoge_path do
ー
とスリムにすることができた。
ただ今回の使い方をするのであれば
= hoge.present? ? link_to('リンク', hoge_path) : 'ー'
のように書けば一行で済んだのと、使うのであれば
# userが必ずいると仮定
= link_to_if user.active?, user.name, user_path(user)
のように、同じ文字列をリンクにするかしないかと言う条件に対して使うのが良さそう。