【发布时间】:2011-03-08 01:47:07
【问题描述】:
我有一个要传递给视图的实例变量@body。
@body 是一个包含 html 的字符串。
<%= @body %> 呈现字符串,而不是 html。如何在字符串中呈现 html?
可能吗?
提前致谢!
【问题讨论】:
我有一个要传递给视图的实例变量@body。
@body 是一个包含 html 的字符串。
<%= @body %> 呈现字符串,而不是 html。如何在字符串中呈现 html?
可能吗?
提前致谢!
【问题讨论】:
答案不再正确。 Rails 3 会自动为您转义 html,所以当您在控制器中时:
@error = "<h1>OMG u broke teh intertubez!!111</h1>"
这将输出不转义的 HTML:
<%= raw @error %>
这两个都会转义 HTML:
<%= h @error %>
<%= @error %>
【讨论】:
如果@body 中有一些 html,<%= @body %> 会输出一些 html。
在该变量中包含 html 有点奇怪,因为控制器不应该传递任何 HTML(控制器必须与视图无关)。
这就是我们有一些辅助方法的原因。 创建一个生成一些 html 的辅助方法,并在您的视图中使用它。
【讨论】: