我想在我的路线的命名约定中保持一致。任何资源的默认参数为:id
。但是,如果在其中嵌套另一个资源,父资源的参数更改为:parent_id
。 我的路由是这样的:覆盖嵌套路线中的参数
resources :users do
resources :projects do
resources :issues
end
end
对于用户模型会产生像:id
的URL,URL项目将是:user_id/:id
和问题的URL将被:user_id/:project_id/:id
。我试图重载默认PARAM以下this
resources :users, param: :user_id do
resources :projects, param: :project_id do
resources :issues, param: :issue_id
end
end
它生成的网址,如::user_user_id/:project_project_id/:issue_id
。由于我重写它,我会希望关闭父资源的默认附加关闭。我希望我的路线看起来像:user_id/:project_id/:issue_id
,我希望它能够与所有模型保持一致。即项目应映射到:user_id/:project_id
。
对不起Haider,但它只添加了参数列表的一个键:'参数:{“key”=>:project_id,“user_id”=>“addie”,“id”= >“new_project”}' – sonalkr132
@ sonalkr132你想将'/ customers /:customer_id/projects /:project_id/issues'转换为'/:user_user_id /:project_project_id /:issue_id' –
不!我想要其他方式。即':user_user_id /:project_project_id /:issue_id'到':user_id /:project_id /:issue_id'。覆盖参数会生成前者。 – sonalkr132