我在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文件中的冲突引号?
答案 0 :(得分:7)
有一个名为j
或escape_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))%>"/>
h
是html_escape
的缩写。这应该逃避属性中的标记,而不是破坏你的布局。