2017-06-21 73 views
0

刚更新了Rails 3.2应用程序到Rails 4.2并开始出现一个有趣的错误。每当我尝试在我的邮件程序模板中使用单个参数调用link_to时,出现错误。不过,我可以在我的一个常规视图中完成相同的调用。link_to在邮件程序中损坏了单个arg

在我的邮件来看,我尝试调用它像这样:

# 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> 

至于我可以告诉看文档,只能自认倒霉link_to之间变化Rails的3.2和4.2,所以我很困惑,为什么这将停止工作......也混淆了为什么它在一个地方,但不是其他工作。

回答

1

link_to只有一个参数不会做你认为它的作用。如果您查看您视图中生成的链接,它只会指向您当前所在的网站。你必须提供两个参数,body和url。

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

您将需要此然而

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

,使一个很大的意义......我敢发誓这是不同的。感谢您的帮助! – ngoue