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 に答える