2012-04-18 85 views
4

route模樣Rails - 如何處理不存在的路由(「沒有路由匹配[GET]」)?

match 'about' => 'company#about' 

當我設置的URL http://localhost:3000/aboutttt,我得到

No route matches [GET] "/aboutttt" 

我想給用戶比這更好的反饋錯誤信息。

我認爲最好的解決方案可能是重定向應用程序,或者在應用程序的主頁上,但存在路徑的任何方式來設置默認路由,當我得到上述錯誤?

回答

4

運行您的應用程序的環境設置爲生產,我想你會發現你將不會再看到這條消息。在開發過程中進行調試非常方便。

有一個設置config/environments/production.rbconfig/environments/development.rb(我不記得哪個方向),它控制異常是否呈現爲視圖。這是關閉生產 - 相反,你得到的是在public,你可以隨意更改404.html。

+1

我知道我可以根據需要修改'public/404.html',但在這種情況下 - 我的問題的解決方案將''render:template =>'home/index''放入'public/404.html'。但說實話,這不是很明確的解決辦法... – user984621 2012-04-18 22:43:11

+0

我明白了,我錯過了你那部分的問題。在我看來,您需要讓用戶知道他們輸入了錯誤的網址,而不是將其重定向到家中,這可能會讓他們感到困惑,特別是如果他們反覆嘗試使用不正確的書籤。 – Russell 2012-04-18 22:47:34

+0

你有沒有嘗試過我的解決方案匹配* a'=>重定向(「/」)'在你的路線的底部? – Robin 2012-04-18 22:49:55

2

當你在開發。通過設置在config/environments/development.rb中進行更改: config.consider_all_requests_local = false

這將禁用完整的錯誤報告,而是顯示一個包含用戶交互響應的頁面。但是這在生產環境中已經被禁用了。但我不建議在開發模式下關閉它。

相關問題