Rails 3创建了一个嵌套独立页面的路径

时间:2013-01-31 20:24:01

标签: ruby-on-rails ruby-on-rails-3 routing

我有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部分?

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:1)

你应该使用

resources :clients do
   resources :departments do
     resources :tasks
       get "data", :on => :collection
   end
end