如何从此 Rails 路由/助手输出原始未转义的 html?

发布于 2024-11-18 02:13:38 字数 1073 浏览 2 评论 0原文

我正在尝试使用以下代码在我的页面上生成链接

%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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

甚是思念 2024-11-25 02:13:38

CGI::unescape(product_path('{{ id }}') 怎么样?(带有与之配套的 require 'cgi'。)

我相信这是 Ruby仅1.9.2,但它似乎是您正在使用的版本。

What about CGI::unescape(product_path('{{ id }}') ? (with the require 'cgi' that goes with it.)

I believe this is Ruby 1.9.2 only but it seems to be the version you're using.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文