Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/90.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html Rails 3:视图中的转义字符串,但不是全部_Html_Ruby On Rails 3_View_Escaping - Fatal编程技术网

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

Html Rails 3:视图中的转义字符串,但不是全部,html,ruby-on-rails-3,view,escaping,Html,Ruby On Rails 3,View,Escaping,在视图中,默认情况下会转义字符串 mystring = "A&B: <b>some string here</b>" <%=mystring%> 但是,我需要呈现标记并转义符号 A&amp;B: <b>some string here</b> A&;B:这里有些绳子 html\u safeunescape符号和标记。是否有一种方法可以转义特殊字符,如符号,但不能转义html标记?您可以在部分上拆分字符串,然

在视图中,默认情况下会转义字符串

mystring = "A&B: <b>some string here</b>" 
<%=mystring%>
但是,我需要呈现
标记并转义符号

A&amp;B: <b>some string here</b>
A&;B:这里有些绳子

html\u safe
unescape符号和
标记。是否有一种方法可以转义特殊字符,如符号,但不能转义html标记?

您可以在部分上拆分字符串,然后使用Ruby的CGI::unescapeElement方法取消特定元素的转义。在您的情况下,您需要使用以下选项:

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 %>
mystring=CGI::escape_html(“A&B:这里有一些字符串”)
#您可以用要转义的标记数组替换[“B”],即[“B”、“A”、“IMG”]
mystring=CGI::unescapelement(mystring,[“B”])

有关更多转义方法,请参阅。

为什么要转义其中一个,而不是另一个?我有一个特例,从模型返回html片段,需要确保转义特殊字符,而不是html标记。干杯!注意别名
CGI::unescape\u元素
,因为它只接受一个参数,不允许提供必要的标记。明白了。我会记下来的。谢谢它看起来很干净,但我不建议这样做,因为它会取消整个属性的外观。字符串
你好,朋友们使用此方法直接滑入您的页面。
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 %>