Rails函数返回HTML名称字符而不是实际字符

时间:2010-11-26 08:36:12

标签: html ruby-on-rails

我有一个功能:

def div
"<div>blah</div>"
end

并在视图中:

<%= div %>

但是在结果页面源中:

&lt;div&gt;blah&lt;/div&gt;

而不是实际的字符串文本。

但是,控制台会显示正确的标签。

<% logger.info(div) %>

控制台中的输出:

<div>blah</div>

有人可以帮忙吗?

3 个答案:

答案 0 :(得分:3)

请改用它。

<%= raw div %>

Rails 3在视图中转义来自服务器的所有内容,如果您确定信任该数据,则可以使用raw

答案 1 :(得分:3)

或者,如果您希望能够使用

<%= div %>
在您的视图中,您可以像这样定义您的功能,它也可以使用:

def div
  "<div>blah</div>".html_safe
end

答案 2 :(得分:0)

是的,在Rails 2中,默认情况下文本是原始的,现在在Rails 3中它们反之亦然