如何从Rails实例变量呈现HTML?

时间:2010-06-24 23:17:36

标签: ruby-on-rails actionview

我有一个我传递给视图的intstance变量@body

@body是一个包含html的字符串。

<%= @body %>呈现字符串,而不是html。如何在字符串中呈现html?

可能的?

提前致谢!

2 个答案:

答案 0 :(得分:9)

答案不再适用。 Rails 3会自动为你转义html,所以当你在控制器中时:

@error = "<h1>OMG u broke teh intertubez!!111</h1>"

这将输出HTML而不转义:

<%= raw @error %>

这两个都将逃脱HTML:

<%= h @error %>
<%= @error %>

答案 1 :(得分:2)

如果你在<%= @body %>中有一些html,

@body会输出一些html。 由于控制器不应传递任何HTML(控制器必须与视图无关),因此在该变量中使用html有点奇怪。

这就是为什么我们有一些辅助方法。 创建一个生成一些html的帮助方法,并在您的视图中使用它。