在Rails4的路由资源中更改parent:parent_id参数的名称

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Rails4的路由资源中更改parent:parent_id参数的名称相关的知识,希望对你有一定的参考价值。

我可以使用in this way更改路由中的:id参数的名称,但这可以更改嵌套资源的参数,就像我有

resources :companies, param: :company_id do
  resources :shares, only[:index]
end

这会产生像这样的路线

/companies/:company_company_id/shares

哪个错了我想要这样的路线

/companies/:company_id/shares

我需要做什么?

答案

我以前经历过这个并得到了下面的解决方案......虽然很丑,但我还没有找到更好的方法。

更改:

resources :companies, param: :company_id do
  resources :shares, only: [:index]
end

要:(注意空白only: []

resources :companies, param: :company_id
resources :companies, only: [], param: :id do
  resources :shares, only: [:index]
end

现在,当你运行rake routes时,你会看到正确的:

/companies/:company_id/shares(.:format)

除了所有其他companies端点:

/companies(.:format)
/companies(.:format)
/companies/new(.:format)
/companies/:company_id/edit(.:format)
/companies/:company_id(.:format)
/companies/:company_id(.:format)
/companies/:company_id(.:format)
/companies/:company_id(.:format)

所有保持相同的:company_id param名称。

以上是关于在Rails4的路由资源中更改parent:parent_id参数的名称的主要内容,如果未能解决你的问题,请参考以下文章

路由更改时使用新的路由参数更新 redux 状态

Rails自动保存不保存对关联的更改

React hooks - useState() 中的状态在路由更改时不会重置

基于一个字段的不同记录在基于rails4中的另一个字段分组后没有列出

GET 和 POST 请求的相同 Rails 4 路由

Rails 4 RoutingError:没有路由匹配 [POST]