我希望我的路线命名约定保持一致。默认参数适用:id
于任何资源。但是,如果在其中嵌套另一个资源,则父资源的参数将更改为:parent_id
. 我的路由看起来像:
resources :users do
resources :projects do
resources :issues
end
end
对于用户模型,它会生成类似的 url :id
,对于项目 url 将是:user_id/:id
,对于问题 url 将是:user_id/:project_id/:id
。我试图在此之后重载默认参数
resources :users, param: :user_id do
resources :projects, param: :project_id do
resources :issues, param: :issue_id
end
end
它生成像这样的 url :user_user_id/:project_project_id/:issue_id
:。由于我要覆盖它,因此我希望关闭父资源的默认附加。我希望我的路线看起来像:user_id/:project_id/:issue_id
,并且我希望它对于所有模型都是一致的。即项目应映射到:user_id/:project_id
.