处理html.erb中的引号

时间:2015-01-29 21:11:50

标签: ruby-on-rails

我在html.erb文件中设置图像的数据元素:

<img src="<%=image%>" data-description="<%= auto_link(step.description)%>"/>

问题是我的step.description中有时会引用干扰,因此数据描述设置不正确,例如:

<img src="..." data-description="<pre><code class=" language-java"="" style="width: 193px; height: 257px; margin-left: -96.5px; margin-top: -128.5px; opacity: 1;">

如何删除erb文件中的冲突引号?

1 个答案:

答案 0 :(得分:7)

有一个名为jescape_javascript的辅助方法,它将转义字符串中的引号,并且可以将带引号的字符串添加到元素上,就像您要尝试的那样。 More info here

因此,请将您的代码更改为:

<img src="<%=image%>" data-description="<%=j auto_link(step.description)%>"/>

只需添加j即可为任何带引号的字符串执行此操作。

如果您还将HTML放在HTML属性中,则必须使用html_escape帮助程序转义html:

<img src="<%=image%>" data-description="<%=h j(auto_link(step.description))%>"/>

hhtml_escape的缩写。这应该逃避属性中的标记,而不是破坏你的布局。