Ruby on Rails Helper方法 - HTML显示为纯文本

时间:2011-01-27 20:24:24

标签: html ruby-on-rails ruby-on-rails-3

我的Rails应用程序有一个帮助方法,它返回一个包含Google网上论坛订阅表单HTML代码的字符串。不幸的是,它出现在页面上,就像纯文本一样。如何强制它呈现为HTML? 提前谢谢。

3 个答案:

答案 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