我正在我的html.erb文件中设置图像的数据元素: img src="%=image%" data-description="%= auto_link(step.description)%"/ 问题是我的step.description中有时会引用干扰,因此数据描述设置不正确,例如: img sr
<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文件中的冲突引号?
有一个名为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的缩写.这应该逃避属性内的标签,而不是破坏你的布局.