2011-11-28 83 views
0

嗨,這是ROR初學者的問題。 我創建了controller.rb並查看了教程後的hello.rhtml,但是當我嘗試打開localhost:3000/say/hello時,它出現了錯誤:沒有路由匹配[GET]「/ say/hello」錯誤的軌道3

可以任何一個建議嗎?

+0

什麼教程?你能發佈你的路線文件嗎? – Mischa

+0

本教程來自Lynda.com,有點舊,可能是2008,router.rb只有兩個roll:myapp :: Application.routes.draw。然後結束。 – Wayneinnz

回答

0

那麼你需要爲你的config/routes.rb文件設置一個路由。 對於第一次嘗試,我會說使用腳本生成器,在命令行上輸入爲在項目庫>rails g controller helloworld index。這將爲自己創建一個路徑,並創建一個控制器文件。 這個腳本運行後,應該有你的config /線的routes.rb

Cloud::Application.routes.draw do 
    get "helloworld/index" 
end 

然後,你需要在瀏覽器地址欄輸入localhost:3000/helloworld/index。然後(默認)rails將呈現位於app/views/helloworld/index。*中的視圖。如果你想改變這種行爲,請轉到helloworld控制器。 欲瞭解更多信息,這裏有一個有用的指導:ROUTING GUIDES

+0

我已經這樣做了,並且router.rb在那裏。但仍得到相同的信息。請嘗試其他任何事情嗎? – Wayneinnz

+0

1.你的routes.rb中有什麼? 2.您在瀏覽器網址字段中輸入了什麼內容? – p1100i

+0

router.rb是myapp :: Application.routes.draw。然後結束。我在瀏覽器上的URL是:http:// localhost:3000/say/hello – Wayneinnz

0

您需要定義一個路由定義,以便將您請求的URL映射到您創建的將呈現hello.rhtml的控制器中的操作。說你的控制器名稱是say_controller.rb(即Rails如何提供文件名)。在這種情況下,如果您定義並操作hello(默認情況下呈現hello.rhtml),那麼在最後routes.rb文件中定義的fallback routes將向say/hello發出請求以查找和hello操作,從而呈現hello的.rhtml。

有關詳細幫助,請參閱Rails Guides。有很多有用的材料,這很好解釋。

+0

你可以讓我知道該怎麼做,請。 – Wayneinnz

+0

即使您的routes.rb中的默認路由定義丟失,您也可能會丟失。你可以在routes.rb的do-end塊中添加match':controller(/:action(/:id))',然後檢查。 –

+0

只是嘗試它,現在得到了不同的消息:模板丟失,缺少模板說/你好 – Wayneinnz

0

我最近開始開發RoR,我得到的最佳實踐是教程@軌道殭屍和視頻的@ railscasts。我建議你看一些/做一些,你會得到一個大概的想法如何開始:)

-edit-在這個問題上:你試圖呈現來自say控制器的hello視圖。 由於在默認情況下處理路由:controller /:action,你說有一個叫做hello的動作嗎?沒有行動意味着沒有路線意味着沒有視圖呈現

class SayController < ApplicationController 

    def hello 
    #do nothing or add some code 
    logger.debug "I'm in the say controller, hello action!" 
    end 

end 

這應該讓它呈現hello文件。儘管你可能想看看restful actions/crud,但rails默認使用這些。

+0

嗨,謝謝你,在我完成從Lynda.com那裏得到的一個後,我會試試它。是你建議免費還是必須付費的那個? – Wayneinnz

+0

它的完全免費:)有一些付費視頻和付費教程,但如果你越來越知道鐵軌是偉大的免費試用和學習的基礎知識。如果你願意,你可以付費購買先進的東西,但要了解MVC結構以及路由如何在免費的軌道上處理。 – Vikko

+0

我已經通過了Lynda Rails教程。它對我有很大的幫助,但是他在教程中做了很多事情,都是過時的。我建議你去http://ruby.railstutorial.org/並檢查。這是關於Rails 3的一個很好的教程,它是免費的。 – PhillipKregg