0

我有 3 层嵌套。

routes.rb 看起来像这样

    resources :clients do
       resources :departments do
         resources :tasks
       end
    end

我想创建一个看起来像这样的自定义路径

/clients/:client_id/departments/:department_id/tasks/data

我尝试添加以下内容

    resources :clients do
       resources :departments do
         resources :tasks
           member do
             get "data"
           end
       end
    end

这将创建路线

/clients/:client_id/departments/:department_id/tasks/:task_id/data

我将如何删除路径中的 :task_id 部分?

4

2 回答 2

3

成员路由作用于成员,这就是它需要 id 的原因。集合作用于集合,因此不需要 id。

resources :clients do
   resources :departments do
     resources :tasks do
       collection do
         get "data"
       end
     end
   end
end
于 2013-01-31T20:30:24.127 回答
1

你应该使用

resources :clients do
   resources :departments do
     resources :tasks
       get "data", :on => :collection
   end
end
于 2013-01-31T20:33:16.250 回答