我希望路线的命名约定保持一致。默认参数是:id
对于任何资源。但是,如果其中嵌套了另一个资源,则父资源的参数将更改为:parent_id
。
我的路由看起来像:
resources :users do
resources :projects do
resources :issues
end
end
对于用户模型,它会生成像这样的 url:id
,对于项目 url 将是:user_id/:id
对于问题,网址将是:user_id/:project_id/:id
。我尝试重载以下默认参数this
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
.
我就是这样做的...不确定是否有更好的方法,但它应该可以解决问题...
resources :users, param: :user_id
resources :users, only: [] do
resources :projects, param: :project_id
end
resources :users, only: [] do
resources :projects, only: [] do
resources :issues, param: :issue_id
end
end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)