2016-11-27 24 views
2

我是Ruby on Rails的初學者,我遇到了問題。我正在嘗試向我的應用添加評論。一切正常,但是當我將此代碼添加到routes.rb無法找到xyzController的動作x

resources :galleries do 
    resources :comments, module: :galleries 
end 
resources :articles do 
    resources :comments, module: :articles 
end 

我無法更新任何圖庫或文章。我的整個的routes.rb:

Rails.application.routes.draw do 

    devise_for :users 


    resources :galleries do 
     resources :comments, module: :galleries 
    end 
    resources :articles do 
     resources :comments, module: :articles 
    end 

    match ':controller(/:action(/:id))(.:format)', via: [:post, :get] 


    root 'public#index' 
end 
+0

您能否請自己顯示錯誤 –

+0

http://imgur.com/a/HoJV2 – Kuba

回答

0

它看起來像請求(文章/ 12 PAGE_ID = 4?)是通過對匹配語句,而不是下降得到你的資源接走。你的對手聲明:

match ':controller(/:action(/:id))(.:format)', via: [:post, :get] 

是匹配「的文章」作爲控制器,並尋找「12」的動作,它顯然不能找到它。

我會放棄匹配語句並嚴格使用命名路由或資源豐富的路由,或者至少在調試時。接下來,運行

rake routes 

並檢查結果。從你的routes.rb我猜你會有這樣一行:

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

如果情況確實如此,請確保您有在文章控制器中定義的show()方法,並驗證日誌正在顯示一個GET請求。

相關問題