2011-01-11 67 views
3

我提交了一份表格,以創建SQL數據庫表中單列,作爲一個博客條目:Rails 3中不顯示HTML的標記

<p>This is a paragraph.</p>

而結果是,當我查詢出來的顯示器通過導軌的ActiveRecord的,它呈現這樣,:

<p>This is a paragraph.</p>

和這裏的代碼,當我在瀏覽器中查看源:

&lt;p&gt;This is a paragraph.&lt;/p&gt;

我該如何解決這個問題?或者我只需要用Javascript轉換<>

謝謝:)

回答

7

正在發生的事情是該字符串被HTML轉義。

您可以使用html_safe在呈現時不會轉義字符串。 例如,<%= post.paragraph.html_safe %>

但當然,這是不建議萬一你允許表單存儲(無限制)的HTML首先,它可能包含例如惡意JavaScript(例如對於XSS)。不用說這是非常糟糕的做法。

重要提示您應該確保HTML包含了允許HTML標籤的白名單上的任何HTML使用html_safe之前。此外,即使在保存表單內容時,您也可能希望強制實施白名單(請注意,在保存時強制實施白名單不是替代,因爲它在顯示內容時實施白名單!)。

你可能想從這個StackOverflow's own "rules"開始。

+0

非常感謝! – howdy 2011-01-12 08:22:17