Rails 3:如何反转 ERB“<%=”默认行为,以便我可以注入 HTML?
我的问题与这个有关,但我正在尝试反转默认的Rails “<%=”的 3 行为,以便我可以注入 HTML。
在我的场景中,我有一个生成 HTML 的旧 Rails 2 插件。然后我的视图需要在页面中注入这个 HTML。
当这个插件创建像这样存储在变量 html_to_show
: 中的 HTML 时
<p class="notice"><span></span>Sorry about this, but we have a problem...</p><p class="error"><span></span>Cannot go to next step</p>
,在视图中我尝试显示 html_to_show
的内容,如下所示:
<%= html_to_show %>
...我在我的浏览器是这样的:
<p class="notice"><span></span>Sorry about this, but we have a problem...</p><p class="error"><span></span>Cannot go to next step</p>
如何让 Rails 3 完全按原样注入 html_to_show
的内容,而不进行任何清理?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
简短回答:
详细回答:
Rails 转义所有 html 以防止 XSS 攻击。添加
.html_safe
可防止转义。Short answer:
Long answer:
Rails escapes all html to protect from XSS attacks. Adding
.html_safe
prevents the escaping.应该可以做到这一点。
That should do it.