我的Rails应用程序有一个帮助方法,它返回一个包含Google网上论坛订阅表单HTML代码的字符串。不幸的是,它出现在页面上,就像纯文本一样。如何强制它呈现为HTML? 提前谢谢。
答案 0 :(得分:53)
你的助手的结果需要在Rails 3中标记为“html_safe”。否则,标签将被转义。
def my_helper
data = "<p>Hello!</p>"
data.html_safe
end
答案 1 :(得分:2)
我认为这是Rails html清理的问题。 来自rails changelog
你不再需要调用h(字符串) 为了逃避HTML输出,它是通过 默认在所有视图模板中。如果你 想要未转义的字符串,请致电 原料(字符串)。
试试吧
答案 2 :(得分:1)
要注意的一件事是加入多个这样的字符串
def custom_check_box(checked)
'<span class="my-custom-checkbox '+( checked ? 'checked' : '')+'"></span>'.html_safe
end
在这种情况下,只有最后一部分被标记为html safe。确保你得到了整件事。
def custom_check_box(checked)
('<span class="my-custom-checkbox '+( checked ? 'checked' : '')+'"></span>').html_safe
end