2017-03-15 26 views
0

我正在遵循RoR教程,本教程中生成的路由文件與我在計算機上生成的文件不同。在本教程中的一個是我爲什麼會收到路由錯誤?

Lecture::Application.routes.draw.do 
    get 'say/hello' 

我的文件gererated

Rails.application.routes.draw.do 
    get 'say/hello' 

這是否有所作爲,因爲我得到一個路由錯誤:

Routing Error No route matches [GET] "/say/hello"

,這是什麼原因呢?

+0

什麼是耙路線的輸出 –

+0

我輸入耙路線,並得到這個:前綴動詞URI模式控制器#動作 say_hello GET /say/hello(.:format)say#hello – Owen

+0

嗨,歡迎來到Stack Overflow。你能否把'rake route'輸出放到你原來的問題中?在評論中格式化真的很難閱讀......:P :)注意:差異的原因可能是rails版本的差異。該教程使用哪個版本?你使用什麼版本? –

回答

0

您需要指定路線所在的位置。 例如:(Rails Routing from the Outside In

get '/patients/:id', to: 'patients#show' 

或你的情況:

get 'say/hello', to: 'say#hello' 

的到格式化 'CONTROLLER_NAME#controller_action'

要定義一個動作使用:

def hello 
    #This is my hello action 
end 
+0

我嘗試過「get'say/hello',以:'say#hello'」並得到相同的錯誤 – Owen

+0

控制器的名稱是什麼?你有沒有定義「你好」的動作? – AytanLeibowitz

+0

控制器是「說」,並在控制器中定義動作「你好」。這就是爲什麼我不明白錯誤信息。它說有沒有路線,但有一條路線,據我所知。 – Owen

0

如果您有say控制器和hello方法在該控制器,

變化,

get 'say/hello', to: 'say#hello' 

到,

get '/say/hello', to: 'say#hello' 

觀察,'/say/hello'

如果你沒有該控制器,

rake routesrails console並更新你的問題。

0
#config/routes.rb 

get 'say/hello' => 'say#hello' #Here say is controller and hello is action 

#controllers/say_controller.rb 

class SayController < ApplicationController 
    def hello 
    ... 
    end 
end 
0

控制器的文件應該是:

say_controller.rb 

Class SayController < ApplicationController 
    def hello 
    puts 'hello there' 
    end 
end 

您的routes.rb文件應包含:

routes.rb 

get '/anything/you_want/', to 'say#hello' 

這應該做的伎倆

相關問題