2017-06-21 43 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