【问题标题】:Change the name of parent :parent_id parameter in Routing resources for Rails4在 Rails4 的路由资源中更改父 :parent_id 参数的名称
【发布时间】:2015-08-19 23:50:25
【问题描述】:

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

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

这将生成类似的路线

/companies/:company_company_id/shares

这是错误的,我想要这样的路线

/companies/:company_id/shares

我需要做什么?

【问题讨论】:

标签: ruby-on-rails-4 routes


【解决方案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 参数名称。

【讨论】:

    【解决方案2】:

    更干净的方法是使用member

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

    【讨论】:

      猜你喜欢
      • 2011-09-29
      • 1970-01-01
      • 2020-09-29
      • 2016-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-24
      相关资源
      最近更新 更多