2016-05-13 60 views
2

我是ROR的新手,我正在通過Ruby on Rails官方指南(4.2.6),但是當我想添加Article模型時遇到了一個問題。官方指南中的rails路徑錯誤

當我試圖挽救我得到了錯誤的文章,

未定義的方法`article_url」爲#你是什麼意思? articles_url

我發現路線不有「文章」前綴在我的路線:

 
majiandeMacBook-Pro:blog majian$ bin/rake routes 
Running via Spring preloader in process 26766 
     Prefix Verb URI Pattern    Controller#Action 
welcome_index GET /welcome/index(.:format) welcome#index 
     root GET /      welcome#index 
    articles POST /articles(.:format)  articles#create 
new_articles GET /articles/new(.:format) articles#new 
edit_articles GET /articles/edit(.:format) articles#edit 
       GET /articles(.:format)  articles#show 
       PATCH /articles(.:format)  articles#update 
       PUT /articles(.:format)  articles#update 
       DELETE /articles(.:format)  articles#destroy 

但在文檔中,我發現,它應該是這樣的:

 
article GET /articles/:id(.:format)  articles#show 

有人知道爲什麼路線不同嗎?任何幫助將不勝感激。

+1

的[資源和資源之間的差異可能的複製方法](http://stackoverflow.com/questions/9194767/difference-between-resource-and-resources-methods) – Vucko

+2

向我們顯示您的「routes.rb」 – Pavan

+0

請提供routes.rb的代碼 –

回答

0

article_url需要作爲參數文章的id,你show行動,你應該有這樣的事情

article_url(@article) 
+0

沒有'文章(單數)的路線,所以這是行不通的。我相信OP使用希望使用單數('article')而不是複數('articles')。所以這是「資源」與「資源」的問題。 – Vucko

+0

你是對的,也許他的路線有問題.rb –

+0

我發現了錯誤,在routes.rb中。我設置了「資源:文章」而不是「資源:文章」,我甚至不知道當我拼錯時它可以工作。 –

2

檢查你的routes.rb文件,它應該是這樣的:

的文件是在配置/ routes.rb中

Rails.application.routes.draw do 
    get 'welcome/index' 
    resources :articles 
    root 'welcome#index' 

    # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html 
end 

誤差可以通過在線路的錯誤引起的「重來源:文章

0

我遇到同樣的問題,那是因爲我拼錯resources :articleroutes.rb 我有resource :article代替,並且不工作