我想将查询字符串参数附加到从 Rails 3 ActionMailer 模板生成的 URL 中,但与号被实体转义了。
<%= user_url(@user, :host => 'example.com', :foo => 'bar', :fubar => 'baz') %>
结果会产生带有 HTML 转义的 & 符号的 URL(如预期的那样),例如
http://example.com/user/123?foo=bar&fubar=baz
(请注意,这是&
不是&
)
我不想要转义(因为它破坏了 URL)。 我曾经可以添加:escape => false
,但这不会影响现在的结果。 我尝试将查询字符串参数放在类似?foo=bar&fubar=baz
的字符串中,并使用类似raw()
<%= user_url(@user, :host => 'example.com') + raw("foo=bar&fubar=baz") %>
但这也逃脱了我的和号。
有没有办法在 HTML 电子邮件 URL 中传递未转义的查询字符串参数?
提前感谢!
汤姆
在 Rails 工单中找到了这一点。它被标记为"已关闭",但从 3.1.0.rc4 开始似乎仍然是一个问题。
https://github.com/rails/rails/issues/687
编辑:我能够通过将我的 url 助手包装在 raw()
中来解决此问题。
<%= raw( user_url(@user, :host => 'example.com', :foo => 'bar', :fubar => 'baz') ) %>