0

まず、タイトルが下手なことをお詫びします。これを短い言葉で説明するためのより良い方法を考えようとしていますが、思いつきません。

基本的に、例として (モデル名は単なる例であることに注意してください。多くのプロジェクトに関連付けられているタスクの実際の概念はあまり意味がないことを私は知っています):

  • プロジェクトモデル
  • タスクモデル

  • 各タスクは多くのプロジェクトに割り当てることができます

/projects/1/tasks でプロジェクトのタスクを表示できるようにしたい

または、/tasks ですべてのプロジェクトのすべてのタスクを表示します。

しかし、これに 2 つのコントローラーを使用することは、あまり DRY ではなく、Rails のやり方とは思えません。より良い方法はありますか?

4

1 に答える 1

0

探しているのは、基本的に同じリソースへの 2 つのルートです。

resources :tasks
resources :projects
match projects/:id/tasks => 'tasks#index'

TasksController#index で、params[:id] を確認します。

def index
  if params[:id]
      @tasks = Project.find(params[:id]).tasks
  else
      @tasks = Tasks.all
  end
  respond_with(@tasks)
end
于 2012-06-28T01:16:51.177 に答える