我想将查询字符串参数附加到从 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') ) %>
关于ruby-on-rails-3 - Rails 3 ActionMailer : :escape => false doesn't work, 也不 raw(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6011368/