如何从此 Rails 路由/助手输出原始未转义的 html?
我正在尝试使用以下代码在我的页面上生成链接
%h2= link_to '{{ label }}', product_path('{{ id }}'.html_safe)
这实际上是一个更大的 HTML 块的一部分,该块将用作 JavaScript 模板,稍后我将使用 Underscore.js
进行解析填写 {{ id }}
和 {{ label }}
占位符。所以我希望rails将一些内容输出到我的HTML中,例如
/products/{{ id }}
但是,它不断转义空格和括号,并给我
<a href="/products/%7B%7B%20id%20%7D%7D">{{ label }}</a>
所以 url_helper 正在转义我的字符串,即使我不希望它这样做。我怎样才能强迫它不这样做?
我已经尝试过
%h2= link_to '{{ label }}', product_path('{{ id }}'.html_safe)
%h2= link_to '{{ label }}', product_path(raw '{{ id }}')
%h2= link_to '{{ label }}', raw(product_path('{{ id }}'))
,
%h2=raw( link_to '{{ label }}', product_path('{{ id }}'.html_safe))
但它们都不起作用
编辑:
另一种方法是从 Rails 控制台进行操作,
include ActionController::UrlWriter
ruby-1.9.2-p0 :010 > product_path '{{ id }}'.html_safe
=> "/products/%7B%7B%20id%20%7D%7D"
任何帮助表示感谢...谢谢
谢谢
I am trying to use the following bit of code to generate a link on my page
%h2= link_to '{{ label }}', product_path('{{ id }}'.html_safe)
This is actually part of a larger HTML block which will serve as a javascript template, and I will later parse using Underscore.js
to fill in the {{ id }}
and {{ label }}
placeholders. So I would like rails to output something to my HTML like
/products/{{ id }}
However, it keeps escaping the spaces and brackeets, and giving me
<a href="/products/%7B%7B%20id%20%7D%7D">{{ label }}</a>
So the url_helper is escaping my string, even though I don't want it to. How can I force it to not do this?
I've tried
%h2= link_to '{{ label }}', product_path('{{ id }}'.html_safe)
%h2= link_to '{{ label }}', product_path(raw '{{ id }}')
%h2= link_to '{{ label }}', raw(product_path('{{ id }}'))
and
%h2=raw( link_to '{{ label }}', product_path('{{ id }}'.html_safe))
But none of them work
EDIT:
Another way to play with this is from rails console,
include ActionController::UrlWriter
ruby-1.9.2-p0 :010 > product_path '{{ id }}'.html_safe
=> "/products/%7B%7B%20id%20%7D%7D"
Any help appreciated... thanks
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
CGI::unescape(product_path('{{ id }}')
怎么样?(带有与之配套的require 'cgi'
。)我相信这是 Ruby仅1.9.2,但它似乎是您正在使用的版本。
What about
CGI::unescape(product_path('{{ id }}')
? (with therequire 'cgi'
that goes with it.)I believe this is Ruby 1.9.2 only but it seems to be the version you're using.