2013-01-07 68 views
3

我目前通過Rails教程工作的邁克爾·哈特爾和所遇到的錯誤我無法理解。Rails的教程 - 命名路由

有一個部分,其中的教程將介紹如何在routes.rb中文件中創建自定義的URI。本教程解釋說,通過編寫此:

match '/about', to: 'static_pages#about' 

命名路由會自動被創建,如下所示:

about_path => '/about' 
about_url => 'http://localhost:3000/about' 

以下部分則可以幫助您通過替換的某些位固定了RSpec的測試工作代碼與這些變量。但是,當我這樣做,我失敗告終每一個測試,因爲所有的「自動創建變量」無法找到...

爲什麼他們沒有被發現或

任何人都可以向我解釋,我可以看看看看他們是否已經創建了。

+1

'耙路線'是你的朋友,如果你想看到所有已知的路線,如果你正在使用3.2+你也可以看看六分儀gem https://github.com/schneems/sextant – pjam

+0

你可能會還需要加上'爲:「name''選項: – pjam

+0

你也應該用這個詞http://guides.rubyonrails.org/routing.html#naming-routes‘搞定’,而不是比賽,因爲這定義了什麼預計請求類型。 – Jamsi

回答

9

據我所知,如果你不使用as:,你沒有得到一個名爲路線。有關更多信息,請參見the guides

在你的榜樣,你可以做到以下幾點:

get '/about', to: 'static_pages#about', as: 'about' 
+0

當我這樣做,並使用耙路線來檢查是否已創建about_path,我在結果對話框中查找什麼? –

+0

@ShawnTaylor一直走到左邊,你應該看到'about'這個詞。有點像'關於GET /about(.:format)static_pages#about'。 – theIV

0

指令是添加一行:

match '/about', to: 'static_pages#about', via: 'get' 

注意, via: 'get'

0

我遲到了這個線程,但我在本教程的同一點有同樣的問題,但作爲@pjam之前提到,我認爲我們需要在routes.rb文件中添加as: 'about'選項,以及其他人請求幫助和聯繫,如本教程中所述。它解決了我的測試問題,現在他們都通過了。