2012-06-19 135 views
-1

在我與Rails的第一個方法我已經簡單地創建一個空白SayController和靜態hello.rhtml觀點,但是當http://localhost:3000/say/hello的頁面開始恢復了我一個路由錯誤是這樣的:的Rails 3.2路由錯誤

No route matches [GET] "/say/hello" 
Try running rake routes for more information on available routes. 

的Rails版本:3.2。 6

+0

那麼,「耙路線」的輸出是什麼? – thisfeller

回答

0

你應該在你的config/routes.rb有東西來定義該路線。嘗試:

match 'say/hello' => 'say#hello', :as => 'say_hello' 

的去localhost:3000/say/hello 還檢查了這個文檔:

http://guides.rubyonrails.org/routing.html

+0

它的工作,很好! 但我不明白,如果每次創建控制器時都運行該任務? – mariobros

+0

如果你在控制器中創建一個新的方法並且想要路由到它,你必須在config/routes.rb中定義它。 – qusr

+0

現在我有模板丟失錯誤: 缺少模板say/hello,application/hello with {:locale => [:en],:formats => [:html],:handlers => [:erb,:builder,:咖啡]}。搜索:*「C:/ rails_proj/demo/app/views」 – mariobros

1

好像你沒有爲hello一個route添加到您的config/routes.rb文件。

YourApp::Application.routes.draw do 
    match 'say/hello' => 'say#hello', :as => :hello 
end 

這將匹配路線say/hello到控制器say#之前的部分)和動作hello#後的部分)。

:as => :hello使它成爲named route,所以你可以在你的應用程序中將它稱爲hello_path

錯誤消息告訴您運行rake routes(從控制檯),它會在您的應用中顯示existing routes

0

我認爲,控制器:和行動:你好

添加下列內容config/route.rb

get 'say/hello' => 'Say#hello'