link_to与邮件中断的单个arg

时间:2017-06-21 20:47:20

标签: ruby-on-rails actionmailer link-to

刚刚将Rails 3.2应用程序更新到Rails 4.2并开始出现一个有趣的错误。无论何时我尝试使用我的邮件模板中的单个参数调用link_to,我都会收到错误消息。但是,我可以在我的常规视图中进行同样的调用。

在我的邮件浏览器视图中,我尝试这样称呼它:

# user_mailer/notify.html.haml
...
= link_to "https://example.com"

但是当我的作业处理程序处理完电子邮件时,它会报告错误ActionView::Template::Error: No route matches {:action=>"index"}。 (有趣的是,当你试图在没有任何参数的情况下调用url_for时,这就是你得到的。)

但是,在我的主页上,使用相同的东西我没有问题:

# home/index.html.haml
...
= link_to "https://example.com"

输出:

<a href="https://example.com">https://example.com</a>

据我所知,查看文档时,Rails 3.2和4.2之间的link_to没有任何变化,所以我很困惑为什么这会停止工作...也混淆了为什么它在一个地方工作,但是不是另一个。

1 个答案:

答案 0 :(得分:1)

仅使用一个参数的

link_to并不能完成您的想法。如果您查看视图中生成的链接,它只会指向您当前所在的网站。你必须提供两个参数,主体和网址。

= link_to "https://example.com"
# <a href="/">https://example.com</a>

但是你需要这个

= link_to "https://example.com", "https://example.com"