2012-06-12 63 views
0

以下RoR的getting started教程後,我添加了另一種模式爲:控制器路由及表格

$ rails g model Category name:string wdate:date 

我增加了行resources :category我的routes.rb文件,並複製粘貼+初始Posts控制器,更改名稱從發佈到類別和發佈到類別。

我在索引,表單,新建和編輯視圖上做了類似的操作。

現在,localhost:3000/category給了我一個空的類別列表,/category/new給了我一個輸入表單。一旦提交,不過,我得到

路由錯誤

沒有路由匹配[POST] 「/類別」

嘗試運行耙路線可用路由上

運行的詳細信息rake routes建議顯示我有:

POST /category(.:format)   category#create 

爲什麼表單提交到錯誤的地址?我在「分類」這個術語中唯一使用的地方是#index處理程序中的變量名稱,所以我不明白爲什麼表單目標是/categories。我是否必須明確將路徑設置爲/category進行創建?

回答

0

您的resources :category線內config/routes.rb應該是resources :categories

當你在做resources時,你應該總是使用資源的複數名稱,這樣Rails會自動將它單獨化爲資源的成員路由助手,比如edit_category_path(category)

然後,它會使用複製形式的路線收集,如form_for。由於該對象是新的,表單將使用表單數據向/categories發出POST請求。