ruby-on-rails-3 - Rails 3 ActionMailer : :escape => false doesn't work, 也不 raw()

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

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

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

结果是带有 HTML 转义的 & 符号(如预期)的 URL,例如

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 电子邮件 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/

相关文章:

ruby-on-rails - 搜索查询(名称或名字)和(名称名称)和(名称名称)

ruby - PDFKit 不使用 GET 调用中的参数

c# - 如何使用 http 网络请求对字符串进行编码?

javascript - 如何在javascript中取消转义html?

regex - 使用 Rust 的正则表达式箱时如何转义转义的正则表达式字符?

ruby-on-rails-3 - 所选选项不适用于选择

ruby-on-rails - 远程ajax调用时是否可以使用redirect_to?

php - 站点地图中应包含动态链接吗?

PHP - 如何用空格替换破折号?

regex - 我怎样才能在 bash 中正确地转义这个正则表达式?