2012-05-06 60 views
0

我是新來的rails,並對如何最佳地路由我的特定應用程序有疑問。我正在使用遺留數據庫,因此架構已經設置並且使事情變得複雜一點。該應用程序的佈局包括一個頂部導航欄,其中包括'用戶',然後對於特定的'用戶'有另一個導航欄來顯示/編輯各種表單。例如,一旦查詢了某個「用戶」,「一般信息」和「賬戶信息」就有單獨的表格。特定設置的導軌路線

我現在的設置是讓'用戶'命名空間對應頂層導航和命名空間中都有第二級導航:'general','project'等。通過這種設置,從第二級導航中選擇的每個表單都有自己的控制器,這似乎有點奇怪。

namespace :users do 
    resources :general, :project 
    end 

這讓我有以下URL其中:ID屬於「用戶」

/users/general/:id 
/users/general/:id/edit 
/users/account/:id 
/users/account/:id/edit 

這看起來合理或有沒有人對如何處理嵌套導航安裝任何其他的想法以一種RESTful的方式?遺留數據庫的複雜性在於我沒有「通用」,「賬戶」模型或數據庫表。對於每個表單,我需要從與「用戶」模型相關聯的幾個模型/表中抽取。有一個'一般'控制器,而沒有'一般'模型似乎不是什麼困擾我的軌道。

+0

這是一個黑暗中的鏡頭,但是您是否考慮過創建一個「通用」模型(而不是ActiveRecord :: Base的子類)來管理各種基礎表上的操作,當「通用」屬性被CRUD時?底層表可以從ActiveRecord :: Base繼承來管理持久性,而通用模型會操縱它們來維護數據庫中的記錄。然後,您的通用控制器或多或少地像AR模型一樣處理一般類的實例,但是當您CRUD時,模型邏輯會啓動並管理數據庫中真正發生的事情。 –

回答

0

您正朝着正確的方向前進,但名稱空間不會幫助您維護要查找的關聯。相反,我想試試這個:

resources :users do 
    resources :general, :project 
end 

我也建議採取看看Rails routing guide

+0

感謝您的建議,但我的問題是,我沒有一般和項目模型的部分原因是遺留數據庫。 「一般」表格可能包含存儲在一個模型/表格中的地址信息和另一個模型/表格中的電話信息。 –