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