在视图中使用帮助程序会转义html?

在我的ruby on rails应用程序中,我必须使用递归来呈现嵌套的注释。

因此我决定将渲染卸载到帮助器中的函数中。

该函数的基本结构如下:

def display_comments(tree) to_render = "" to_render < 'comment', :locals => {:body => tree[:body]}}) tree[:children].each do |child| to_render << display_comment(child) end return to_render end 

在视图中我称之为:

  0 %>  <%= display_comments(tree)   

但是,在网页上,rails会转义所有的html,最终看起来像这样:

在此处输入图像描述

您可能希望在返回之前调用html_safe 。 Rails 3中的清理行为有所改变(默认情况下启用了XSS保护),因此您可能还想查看有关rawhhtml_safe SO讨论,该讨论链接到Yehuda Katz 对Rails 3中的SafeBuffers的解释 。