2015-06-29 51 views
0

在我的routes.rb文件我有以下資源:Rails的嵌套的資源和URL助手 - 如何縮短

resources :educations do 
    resources :semesters do 
    resources :module_assignments do 
     resources :module_exams do 
     resources :module_marks 
     end 
    end 
    end 
end 

產生這個網址助手:

logonname_module_assignment_module_exams_path GET /:student/module_assignments/:module_assignment_id/module_exams(.:format) module_exams#index 

有什麼辦法縮短這個?它應該重定向到相同的控制器和相同的操作。取而代之的

logonname_module_assignment_module_exams_path 

我寧願像

module_exams_path 

有沒有辦法解決這個問題的方法嗎?我希望像這樣的所有url-helpers(索引,新建,編輯,顯示等)不只是顯示路徑。

+0

http://guides.rubyonrails.org/routing.html#using-as-in-nested-resources –

回答

2

你不要巢太深了。

我個人只有兩個深度,它只是使維護更容易。

但這並沒有回答這個問題。或者它可能。

隨着你的設置。你可以這樣做:

match '/:student/module_assignments/:module_assignment_id/module_exams(.:format)' => 'module_exams#index', :as => :module_exams

這給你module_exams_path的幫手。