2012-12-04 27 views
0

我想在Rails中創建每個用戶的視圖,並試圖找出在routes.rb中定義它們的最佳方式。說我想有以下類型路徑名:如何在Rails中定義每個用戶的路線?

/users/1/event_list_view 
/users/1/event_map_view 
/users/1/aggregated_event_view 

所以「/用戶/ 1 /」後到來的端點不是一種資源,它的控制器只是另一個端點:

class UsersController < ApplicationController 
    def event_list_view 
    end 

    def event_map_view 
    end 

    def aggregated_event_view 
    end 
end 

我嘗試了一些不同的事情,目前有以下幾種,但似乎無法得到它的工作:

resources :users do 
     match '/users/:id/event_list_view' => {:action=>"event_list_view", :controller=>"users"} 
     match '/users/:id/event_map_view' => {:action=>"event_map_view", :controller=>"users"} 
     match '/users/:id/aggregated_event_view' => {:action=>"aggregated_event_view", :controller=>"users"} 
    end 

讓我知道我做錯了什麼。謝謝!

回答

2

Member routes應該讓你做你想要的:

resources :users do 
    member do 
    get 'event_list_view' 
    get 'event_map_view' 
    get 'aggregated_event_view' 
    end 
end 

我不知道你想要做什麼,但它也可能是值得考慮的替代資源的安排。如果您試圖顯示與用戶相關的所有事件,爲Event資源(等等)定義索引路由並在其中傳遞用戶參數可能更有意義。

+0

啊,現在完全合理。謝謝! –

+0

@RyanShih你打賭。祝你的項目好運! – rjz