我可以使用in this way更改路由中的:id参数的名称,但这可以更改嵌套资源的参数,就像我有
一样resources :companies, param: :company_id do
resources :shares, only[:index]
end
这将产生类似
的路线/companies/:company_company_id/shares
哪个错了我想要这样的路线
/companies/:company_id/shares
我需要做什么?
答案 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
参数名。