Rails 3 ActionMailer :: escape => false不起作用,也不起作用()

时间:2011-05-15 21:26:40

标签: ruby-on-rails-3 url escaping actionmailer

我想将查询字符串参数附加到从Rails 3 ActionMailer模板生成的URL中,但是&符号正在实体转义。

<%= user_url(@user, :host => 'example.com', :foo => 'bar', :fubar => 'baz') %>

会生成带有HTML转义符号的网址(如预期的那样),例如

http://example.com/user/123?foo=bar&amp;fubar=baz

(请注意 &amp; 而非 &

我不希望转义(因为它会破坏URL)。我曾经能够添加:escape => false,但这不会影响现在的结果。我尝试将查询字符串参数放在?foo=bar&fubar=baz之类的字符串中,并使用raw()之类的

<%= user_url(@user, :host => 'example.com') + raw("foo=bar&fubar=baz") %>

但这也逃过了我的&号。

有没有办法在HTML电子邮件网址中传递未转义的查询字符串参数?

提前致谢!

汤姆

1 个答案:

答案 0 :(得分:3)

在Rails门票中找到了这个。它被标记为“已关闭”,但从3.1.0.rc4开始仍然是一个问题。

https://github.com/rails/rails/issues/687

编辑:我能够通过在raw()中包装我的网址助手来解决这个问题。 E.g。

<%= raw( user_url(@user, :host => 'example.com', :foo => 'bar', :fubar => 'baz') ) %>