カテゴリー:
Rails
タグ:
 Rails link_to_if

このエントリーをはてなブックマークに追加
更新日時:
2013年09月26日(木)
作成日時:
2013年09月26日(木)

前の記事 / 次の記事

参考:link_to_ifで条件がfalseの時、表示を消す方法

link_to_if はブロックを取れて、そのブロックは条件が false の時に適用される。
ていうか link_to_if がブロック取れるの知らなかった。。

なので、

-# haml
=link_to_if @item, @item.name, item_path(@item) do
  %strike=@item.name

とか書ける。
さらに、ブロックに引数を渡すと link_to_if に渡した値を参照できる、

-#haml
=link_to_if @item, @item.name, item_path(@item) do |name, path, html_options|
  %strike=link_to name, path, html_options

# name, path, html_options というのは決められた値ではなくて何でもいい。
# 何番目に定義されているかで変数に入る値が決まる。
# 全てを定義する必要はなくて必要な数だけ定義すればいい。