如何用原始html显示内容

时间:2010-10-29 14:43:15

标签: html ruby-on-rails ruby markdown

@post.body有以下内容(使用RDiscount从Markdown转换)。我应该如何将其呈现给用户?即我想将其呈现为强文 强调文字 ......

<p><strong>strong text</strong> </p> <p><em>emphasized text</em> </p> <blockquote>  <p>this is a quote</p> </blockquote><p><img src="http://www.picturehouse.com/titles/images/rock.jpg" alt="alt text" title="" /> </p> 

使用<%= @post.body =>只会将其显示为上面显示的文字。

4 个答案:

答案 0 :(得分:53)

假设Rails 3,使用raw辅助方法,例如

<%= raw(@post.body) %>

默认情况下,在所有视图模板中都会启用转义HTML输出(与必须使用h方法单独转义字符串的早期版本相反。)

答案 1 :(得分:5)

你使用的是rails 3吗?它会自动转义<%= %>个标签的所有内容。为避免这种情况,请执行

<%= raw(@post.body) %>

答案 2 :(得分:5)

我认为你在Rails 3中?一个很大的变化是显示的文本默认是原始的,你必须自己清理它。现在是另一种方式。这样称呼:

<%= raw(@post.body) %>

你会得到你想要的东西。

答案 3 :(得分:0)

快速,轻松,并指向重点

<%== @post.body %>
  

更多信息

     

<%== @post.body ==><%= raw(@post.body) ==>

的别名      

https://edgeguides.rubyonrails.org/active_support_core_extensions.html#output-safety