2010-06-24 31 views
6

我有一個intstance變量,我傳遞給一個視圖,@body如何從Rails實例變量呈現HTML?

@body是一個帶有html的字符串。

<%= @body %>呈現字符串,而不是html。我如何呈現字符串中的HTML?

可能嗎?

在此先感謝!

回答

2

<%= @body %>會輸出一些html,如果你有一些html在@body。 由於控制器不應該傳遞任何HTML(該控制器必須與視圖無關),所以在該變量中使用html有點奇怪。

這就是爲什麼我們有一些輔助方法。 建立一個幫助器方法來生成一些html,並在你的視圖中使用它。

+0

Doh!我正在使用<%=h %>。我理解視圖不可知論的事情,這只是一個奇怪的情況,我通過html格式的電子郵件來查看。謝謝! – Stirman 2010-06-24 23:35:25

+0

h()會逃離你的html :) – 2010-06-24 23:36:35

9

答案並非如此。 Rails 3的自動轉義HTML你,所以當你在一個控制器:

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

這將輸出的HTML沒有逃脫:

<%= raw @error %> 

而且兩者的,這將難逃HTML:

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