0

我想在 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

让我知道我做错了什么。谢谢!

4

1 回答 1

2

成员路线应该允许你做你想做的事:

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

我不确定您到底想做什么,但也可能值得考虑替代资源安排。如果您尝试显示与用户关联的所有事件,则为Event资源(等)定义索引路由并在那里传递用户参数可能更有意义。

于 2012-12-04T03:22:54.733 回答