2016-07-05 54 views
1

我注意到我的導航/路由不工作,因爲我認爲它會在我在不同的控制器時。導軌路由不能按預期工作時,在另一個控制器

我的路線:

get 'help/version_history' => 'about_and_helps#version_history' 

這就是我如何鏈接到它:

<%= link_to "Version History", '/help/version_history' %> 

如果我表現出特定的投訴,然後嘗試去菜單鏈接的版本歷史,我得到一個錯誤。

您正在查找的頁面不存在。
您可能錯誤地址或頁面可能已移動。

URL是http://cctweb:9298/complaints/help/version_history

如果我投訴索引頁,點擊鏈接帶我到正確的頁面與http://cctweb:9298/help/version_history

回答

3

錯誤的URL在於相對論(也許是由於您提供的示例中的主要斜槓)。

爲了簡便,並遵循Rails的約定,我建議指定一個名稱路線:

get 'help/version_history', to: 'about_and_helps#version_history', as: 'my_route_name' 

通知的as選項。這告訴這條路有一個名字,這在我的例子中,設置爲my_route_name

路由器現在你可以用下面的鏈接:

<%= link_to "Version History", my_route_name_url %> 

這將需要的相關問題,關心和始終鏈接回該特定路線。即使您在路上改變路線的URI,所有內容仍然可以使用路線的名稱。

更多選擇 - 和實例 - 可以在Rails Routing Docs

+0

這是要走的路可以發現,其別名讓使用者使用它們,有一天,如果你需要更改的鏈接,只有一個地方改變它.... – lcguida

+0

謝謝 - 這工作,現在我明白它好一點。 –