2012-02-08 46 views
1

这是我试图找出一个设计问题。我将解释什么,我现在所拥有的,我想拥有的一切:导轨 - 从REST的资源定制化路线

1.实际设计

我有一个定义的resources :users并通过这样做,所以我定义了不同的动作,如新,在用户控制器中创建和更新。这是正常工作如下网址喜欢用户/新,用户/:身份证等等... 现在我想走一步,我希望能够做到以下...

2.什么是我寻找

我希望能有这样的路线:

users/overview/profile - This should be equivalent to `users/:id` (show action) 
users/overview/network - This should be equivalent to users/:id/network (list of networks for that user) 

3.我的想法

我最初的想法是定义是这样的:

resource :users do 
namespace :overview do 
    resource :networks 
end 
end 

但这将工作像URL:用户/:ID /概述/网络,我不希望在URL中显示的用户ID 。所以我的问题是:

1 - 我该如何处理用户/概述/网络,而不是用户/:ID /概述/网络,假设我可以从会议获得用户ID。

2 - 如何能够管理这样的URL:users/overview/profile这里居然轮廓只是users/:id表演方法现在我已经定义在用户控制器中的所有行动和一切工作正常(新建,删除,创建,更新中...)我只是不知道如何移动到该“命名空间”概述/ profile文件

回答

0

我已经试过你尝试过同样的事情,它返回您想要的结果而已,不知道什么是你的问题。在此发布耙路线结果。

users_overview_networks POST  /users/overview/networks(.:format)   {:action=>"create", :controller=>"overview/networks"} 
new_users_overview_networks GET   /users/overview/networks/new(.:format)  {:action=>"new", :controller=>"overview/networks"} 
edit_users_overview_networks GET   /users/overview/networks/edit(.:format) {:action=>"edit", :controller=>"overview/networks"} 
GET   /users/overview/networks(.:format)   {:action=>"show", :controller=>"overview/networks"} 
PUT   /users/overview/networks(.:format)   {:action=>"update", :controller=>"overview/networks"} 
DELETE  /users/overview/networks(.:format)   {:action=>"destroy", :controller=>"overview/networks"} 
users POST  /users(.:format)       {:action=>"create", :controller=>"users"} 
new_users GET   /users/new(.:format)      {:action=>"new", :controller=>"users"} 
edit_users GET   /users/edit(.:format)      {:action=>"edit", :controller=>"users"} 
GET   /users(.:format)       {:action=>"show", :controller=>"users"} 
PUT   /users(.:format)       {:action=>"update", :controller=>"users"} 
DELETE  /users(.:format)       {:action=>"destroy", :controller=>"users"} 
+0

感谢您的回答,但对于我的第二个问题? – 2012-02-08 05:24:29

+0

此外,请注意/users/:user_id/overview/networks(.:format) - 我不希望出现这种情况:USER_ID有... – 2012-02-08 06:09:12

+0

看一看http://stackoverflow.com/questions/2837102/changing -the-ID参数,在护栏路由 – rajibchowdhury 2012-02-08 07:47:27

0
scope :path => 'users/overview' do 
    match ':id/profile', :to => 'users#show' 
    match ':id/network', :to => 'users#network' 
    end