在视图中,字符串默认是转义的。
mystring = "A&B: <b>some string here</b>"
<%=mystring%>
mystring
呈现为:
A&B: <b>some string here</b>
但是,我需要渲染<b></b>
标记并且转义&符号。
A&B: <b>some string here</b>
html_safe
unescapes&符号和<b>
标记。有没有办法逃脱特殊字符,如&符号,但不是html标签?
答案 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)
你可以在部分上拆分字符串,然后取消你想要的部分