我想在Rails中创建每个用户的视图,并试图找出在routes.rb中定义它们的最佳方法。假设我想要以下类型的路径名:
/users/1/event_list_view
/users/1/event_map_view
/users/1/aggregated_event_view
因此'/ users / 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
让我知道我做错了什么。谢谢!
答案 0 :(得分:2)
Member routes应该允许你做你想做的事情:
resources :users do
member do
get 'event_list_view'
get 'event_map_view'
get 'aggregated_event_view'
end
end
我不确定你究竟想做什么,但也可能值得考虑其他资源安排。如果您尝试显示与用户关联的所有事件,那么为Event
资源(等等)定义索引路由并在那里传递用户参数可能更有意义。