Rails 3:在视图中转义字符串,但不是全部

时间:2012-04-14 04:13:37

标签: html ruby-on-rails-3 view escaping

在视图中,字符串默认是转义的。

mystring = "A&B: <b>some string here</b>" 
<%=mystring%>

mystring呈现为:

A&amp;B: &lt;b&gt;some string here&lt;/b&gt;

但是,我需要渲染<b></b>标记并且转义&符号。

A&amp;B: <b>some string here</b>

html_safe unescapes&符号和<b>标记。有没有办法逃脱特殊字符,如&符号,但不是html标签?

2 个答案:

答案 0 :(得分:2)

您可以使用Ruby CGI :: unescape Element方法转义特定元素。在您的情况下,您可能希望使用以下内容:

mystring = CGI::escape_html("A&B: <b>some string here</b>")

# You can replace ["B"] with an array of tags to be escaped, i.e. ["B", "A", "IMG"]
mystring = CGI::unescapeElement(mystring, ["B"]) 

<%= mystring.html_safe %>

有关更多转义方法,请参阅http://www.ruby-doc.org/stdlib-1.9.3/libdoc/cgi/rdoc/CGI.html

答案 1 :(得分:0)

你可以在部分上拆分字符串,然后取消你想要的部分