link_toの第一引数にタグを入れる
module AppHelper def icon(name) "<i class='icon-#{name}'></i>".html_safe end end
# view <%= link_to "#{icon(:home)}家のリンク", "/home" %>
iconヘルパーでhtml_safeしているのだけどlink_toで実行される頃には、別の文字列インスタントになっているのでタグがサニタイズされて表示されてしまう。
<%= link_to "#{icon(:home)}家のリンク".html_safe , "/home" %>
と書いてもいいんだけどヘルパーの中で済ませておきたい気持ちがする。
こういう場合ブロックで渡すとスッキリようです。
<%= link_to "/home" do %> <%= icon(:home) %> <%= "家のリンク" %> <% end %>