在Rails应用程序中,我有帮助方法来呈现html片段,例如Twitter引导字体
def edit_icon
content_tag(:i, "", :class=>'icon-edit')
end
我想在附加了附加文字的链接锚中显示它。 e.g。
<%= 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}
进行了实验,但在这种情况下,这似乎不是我需要的。
感谢任何想法。
答案 0 :(得分: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) %>