2017-09-27 97 views
0

我有一個用戶案例,其中嵌套資源和個人資源都有意義。我如何設計路徑和代碼結構來反映這一點?例如:爲Ruby on Rails共存設計嵌套資源和個人資源操作

resources :magazines do 
    resources :ads 
end 

resources :ads 

每個ad屬於magazine,所以magazines/:magazine_id/ads絕對是有意義的。但是,在某些情況下,我只想列出所有ads,因此ads也是有意義的。請注意,magazines/:magazine_id/adsads有完全不同的view。同樣的事情適用於其他行爲。有沒有人有類似的情況?有什麼更好的方法來解決它,並在mvc結構代碼?

+0

這聽起來像magazine_給我的簡單_filter。 – spickermann

+0

@spickermann,但觀點和行動是完全不同的。所以我不能簡單地過濾它。 – new2cpp

+0

您能否舉例說明這些操作和觀點會有何不同? – spickermann

回答

0

您的路線應該沒問題,您可以在控制器中處理差異 - 參數中會有差異::magazine_id將會存在或不存在。

如果你想控制器完全分離,你可以使用你的路由module:

resources :magazines do 
    resources :ads, module: 'nested' 
end 
resources :ads 

第一個將指向Nested::AdsController,第二個AdsController

還是其他方式

resources :magazines do 
    resources :ads 
end 
resources :ads, module: 'unnested' 

第一個指向AdsController,第二個指向Unnested::AdsController