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

时间:2015-06-05 06:17:07

标签: ruby-on-rails-4 routes

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

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

这将产生类似

的路线
/companies/:company_company_id/shares

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

/companies/:company_id/shares

我需要做什么?

1 个答案:

答案 0 :(得分:1)

我以前已经经历过这个问题,并在下面进行了修复。虽然这很丑,但是我没有找到更好的方法。

更改:

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参数名。