在erb模板中禁用HTML转义
在Rails 3应用程序中,我有一个域类,其中一个属性存储纯HTML内容(这是一个博客应用程序,域类是Post)。
在ERB模板中,我需要显示属性的内容,因为它已经形成了HTML标签。 但是,Rails正在逃避所有的HTML标签! 如何禁用此类属性的这种行为?
例:
somePost = Post.new somePost.content = "<strong> Hi, i'm here! </strong>"
在erb模板中:
<%= somePost.content %>
生成的HTML被转义:
<strong> Hi, i'm here! </strong>
尝试使用raw(somePost.content)
。 另外, somePost.content.html_safe
。
使用raw(string)
,如发行说明中所述 。
7.4.3其他变更
您不再需要调用h(string)来转义HTML输出,它在所有视图模板中默认处于打开状态。 如果您想要非转义的string,请调用raw(string)。
基本上,你在哪里
<%=h @model.attr %>
在你现在可以使用之前
<%= @model.attr %>
在你现在可以使用之前,你在哪里做了
<%=raw @model.attr %>
使用双等于意味着结果不逃脱…
<%== somePost.content %>
看到这个关于它的问题 – 在轨erb中做什么<%==%>?