2012-03-09 99 views
1

在我的routes.rb我有這樣的補充「設置」作爲一個附加動作保險:如何路由名稱空間資源的其他操作?

namespace :modules do 
    namespace :insurance do 
     resources :insurances do 
      member do 
       get :settings 
      end 
     end 
    end 
end 

據「耙路線」這給以下路徑:

settings_modules_insurance_insurance_path 

但是,當我訪問的瀏覽器的路徑,則返回錯誤:

No route matches {:action=>"settings", :controller=>"modules/insurance/insurances"} 

這是耙路線的全輸出繼電器:

settings_modules_insurance_insurance GET /modules/insurance/insurances/:id/settings(.:format) {:action=>"settings", :controller=>"modules/insurance/insurances"} 

我該怎麼辦?

+1

官方rails文檔實際上建議您不要將資源嵌套深度超過一個等級。你的應用程序將在應用程序/控制器/模塊/保險/ insurances_controller.rb – Jon 2012-03-09 08:27:05

+0

尋找一個控制器你是對的,這變得太複雜,併成爲配置超過約定,這不是什麼Rails是關於。感謝您指出了這一點! – John 2012-03-09 10:09:16

回答

0

你穿上成員的新途徑,所以你必須通過保險ID:

settings_modules_insurance_insurance_path(@insurance) 
+0

謝謝,這個工程。不過,我要回到繪圖板,因爲這太複雜了。 – John 2012-03-09 10:09:42

0

控制器應模塊::保險:: InsurancesController的全名,對不對?

相關問題