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}and <%= 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 回答