0

Rails アプリには、HTML スニペット (Twitter ブートストラップ フォントなど) をレンダリングするヘルパー メソッドがあります。

def edit_icon
  content_tag(:i, "", :class=>'icon-edit')
end

これを、追加のテキストを追加してリンク アンカーに表示したいと考えています。例えば

<%= link_to "#{edit_icon} Edit this Record", edit_record_path(@record) %>

これは現在、content_tag を HTML ではなく文字列としてレンダリングしています。HTMLとしてレンダリングするにはどうすればよいですか?

<%= link_to "#{raw edit_icon}とを試してみまし<%= link_to "#{edit_icon.html_safe}たが、これらはこの場合に必要なものではないようです。

アイデアをありがとう。

4

1 に答える 1

5

問題は、Rails 文字列補間が content_tag の HTML 出力を「安全な」形式に変換することです。試した修正は両方とも、文字列補間が適用される前に機能しますが、機能しません

この問題を解決するには、メソッド呼び出しを文字列の外に移動するという小さな変更が必要です。

Do this:
    <%= link_to edit_icon + "Edit this Record", edit_record_path(@record) %>
Instead of:
     <%= link_to "#{edit_icon} Edit this Record", edit_record_path(@record) %>
于 2012-06-03T14:44:05.070 に答える