2013-07-30 161 views
2

我是新來的回報率,並一直在努力的最後幾天(跑山獅)的設置我的環境。當我看到this lesson,我終於到了可以開發的地步,決定在lynda.com上開始試用。Ruby on Rails的4 - 問題與路線

到目前爲止學習Rails理論的原理&,但它是在2010年制定的,我發現難以在主要版本的Rails之間做出多大改變。例如,產生項目不再包含的腳本文件夾 - 這是在Mac的命令行下使用命令剛打電話。

在過去的課程中,教師生成一個新的軌道項目,加入了控制器:

class SayController < ApplicationController 

    def hello 
    end 

end 

和加入的視圖(視圖 - >說 - > [ 'hello.rhtml'])

<html> 
    <head> 
     <title>Hello World</title> 
    </head> 
    <body> 
     <p>Hello World</p> 
    </body> 
</html> 

就是這樣。接下來,他剛剛啓動了rails服務器,跳到firefox,並輸入地址[http://localhost:3000/say/hello]。瀏覽器顯示文本「Hello World」,就像您期望的那樣。

但是,我得到 「沒有路由匹配[GET] '/說/你好'」。我知道這是一個與路線有關的問題,我只是找不到一個好的(具體來說就是ROR 4)的使用說明。

,似乎讓一切都默認在導師的項目工作的一行是:

map.connect ':controller/:action/:id' 

我嘗試添加這個(我的routes.rb用一切註釋掉生成),但是事實並非如此工作,我認爲RoR 4的約定是不同的。

那麼是否有RoR 4的默認路由? v4是否不允許返回null或者語法已更改的操作?

錯誤頁說我目前的路線是Rails.root: /Users/abcde/Sites/RoR/my_app/這是我有軌服務器上運行,所以我不知道,如果該事項。

路由跟蹤&日誌只是重申,我的路線(/說/你好/)不存在),但如果需要,我可以張貼。

+1

* .rhtml看起來也很舊。通常視圖的擴展名爲* .html.erb。如果您正在尋找Rails4的幫助或文檔,請查看:http://edgeguides.rubyonrails.org/或特別是http://edgeguides.rubyonrails.org/routing.html瞭解路由。 – Ayonix

+1

我也會建議[Michael Hartl的Ruby on Rails教程](http://ruby.railstutorial.org/ruby-on-rails-tutorial-book)。 –

回答

7

這句法似乎老了,我會用:

get '/say/hello' 

如果不行,我會指定控制器和動作:

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

兩者都會給我以下錯誤:缺少模板say/hello,application/hello with {:locale => [:en],:formats => [:html],:handlers => [:erb,:builder,:raw ,:ruby,:jbuilder,:coffee]}。搜查:*「/用戶/ ABCDE /網站/回報率/ my_app應用/應用/視圖」 – MCwa

+1

是啊,所以你應該遵循@Ayonix評論,查看文件重命名爲'應用程序/視圖/說/ hello.html.erb' – juanpastas

+0

很棒,現在工作。所以我想這意味着Rails 4應用程序只接受顯式路線? – MCwa

0
match '/:controller/:action', :via => :get 

應該努力!