刚刚将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
没有任何变化,所以我很困惑为什么这会停止工作...也混淆了为什么它在一个地方工作,但是不是另一个。
答案 0 :(得分:1)
link_to
并不能完成您的想法。如果您查看视图中生成的链接,它只会指向您当前所在的网站。你必须提供两个参数,主体和网址。
= link_to "https://example.com"
# <a href="/">https://example.com</a>
但是你需要这个
= link_to "https://example.com", "https://example.com"