我有一个用户案例,其中嵌套资源和个人资源都有意义。如何设计路径和代码结构来反映这一点?例如:
resources :magazines do
resources :ads
end
resources :ads
每个ad
属于magazine
,因此magazines/:magazine_id/ads
绝对有意义。但是,在某些情况下,我只想列出所有ads
,因此ads
也有意义。请注意,magazines/:magazine_id/ads
和ads
完全不同view
。同样的事情适用于其他行动。有没有人有类似的情况?在mvc
?
答案 0 :(得分:1)
您的路线应该没问题,您可以处理控制器中的差异 - 参数中存在差异::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
。