ruby-on-rails 轨道布线:如何重命名(嵌套)资源块中的params-Hash键?

ma8fv8wu  于 2023-08-08  发布在  Ruby
关注(0)|答案(2)|浏览(97)

是否有一种方法可以重命名资源块中资源的键?我的页面路由如下所示

get ':slug', to: 'pages#show', as: :pages
resources :pages

字符串
因此,对于show-action,关键不是/pages/:id,而是/pages/:slug,如下所述:https://guides.rubyonrails.org/routing.html#naming-routes。
有没有办法将所有/pages/* 路由的params-key改为:slug而不是:id
特别是:这在嵌套资源块中是可能的吗?
举例来说:

resources :users do
  resources :products do (should be params[:product_id] instead of params[:id])
    resources :comments (should be params[:comment_id] instead of params[:id])
    end
  end
end


手动设置所有路由只是为了更改该资源的params-key将是相当繁重的工作!

1cklez4t

1cklez4t1#

嘿-一个很好的方法就是

# config/routes.rb

resources :pages, param: :slug

字符串
你可以在这里阅读更多关于它的信息:https://guides.rubyonrails.org/routing.html#overriding-named-route-parameters

okxuctiv

okxuctiv2#

另一种选择是显式提供路由的名称:

put 'pages/:some_other_name_for_the_id', action: :do_something, as: :route_name

字符串
使用param:选项(Damilare提到过),如果它适合您的用例,那么绝对是首选。

相关问题