0

首先,我为这个糟糕的标题道歉——我正在想一个更好的方法来用几句话来解释它,但想不出一个。

基本上,作为一个例子(注意模型名称只是例子;我知道与许多项目相关联的任务的实际概念并没有太大意义):

  • 项目模型
  • 任务模型

  • 每个任务可以分配给多个项目

我希望能够在以下位置查看项目的任务:/projects/1/tasks

或查看所有项目中的所有任务:/tasks

但是为此拥有两个控制器似乎不是很干燥,而且看起来不像 Rails 方式。有没有更好的办法?

4

1 回答 1

0

您正在寻找的本质上是通往相同资源的两条路线。

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 回答