2013-05-13 71 views
0

我正在創建一個簡單的建議框應用程序(學習Rails),並且當我轉到在本地運行的「/ suggestion-boxes」時,出現以下Rails路由錯誤機器(本地主機:3000)使用資源時,但現在使用GET時,導軌路由錯誤

路由錯誤

沒有路由匹配[GET] 」/建議盒「

在我的routes.rb文件我有:

SuggestionBoxApp::Application.routes.draw do 
    resources :suggestion_boxes 
end 

這是我所得到的,當我運行耙路線:

suggestion-box-app$ rake routes 
suggestion_boxes GET /suggestion_boxes(.:format)   suggestion_boxes#index 
       POST /suggestion_boxes(.:format)   suggestion_boxes#create 
new_suggestion_box GET /suggestion_boxes/new(.:format)  suggestion_boxes#new 
edit_suggestion_box GET /suggestion_boxes/:id/edit(.:format) suggestion_boxes#edit 
suggestion_box GET /suggestion_boxes/:id(.:format)  suggestion_boxes#show 
       PUT /suggestion_boxes/:id(.:format)  suggestion_boxes#update 
       DELETE /suggestion_boxes/:id(.:format)  suggestion_boxes#destroy 

但是,如果我修改我的路線文件來

SuggestionBoxApp::Application.routes.draw do 
    get "suggestion-boxes" => "suggestion_boxes#index" 
end 

然後在網頁「/建議盒」顯示爲每我的SuggestionBoxesController中的索引操作。

我試過重新啓動我的服務器,但這沒有任何影響。雖然我當然可以使用GET,但這個錯誤沒有意義,我想知道是什麼導致它。

任何見解都將非常感激。

回答

1

您的代碼中的某處您正在調用suggestion-boxes控制器,該控制器不存在。你的控制器是suggestion_boxes,拼寫。所以,如果你有每個「建議箱」,你應該替換爲「suggestion_boxes」。您添加的代碼會創建一個別名,該別名與suggestion_boxes控制器的index操作匹配'suggestion-boxes',因此如果這是您希望的影響,則會將其解決。但簡單地修復拼寫可以解決您的問題。如果我想要更改用戶看到的URL,我通常會使用第二種方法。看看以便更好地理解

+0

甚至沒有注意到我在一個地方使用破折號而在另一個地方使用破折號 - 經驗教訓!謝謝! – andersr 2013-05-13 16:13:40

+0

@andersr沒問題,它發生 – 2013-05-13 16:26:18

2

錯誤在於您不重命名REST路由,而是重命名控制器。 嘗試在config/routes.rb文件中聲明