在我的路线中,我有一个嵌套资源,如:
namespace :public, path: "/" do
constraints(Subdomain::Public) do
namespace :v1 do
post "/webhooks/:id/test", to: "webhooks#test"
resources :webhooks, only: [ :index, :show, :create, :update, :destroy ]
后期webhook路线变为:
POST /v1/webhooks/:id/test(.:format)
这很好。但是我想要清理它有点像这样:
namespace :public, path: "/" do
constraints(Subdomain::Public) do
namespace :v1 do
resources :webhooks, only: [ :index, :show, :create, :update, :destroy ] do
post :test
end
这导致这样的路线:
POST /v1/webhooks/:webhook_id/test(.:format)
不好。我想在路径中使用常规:id。我在这里做错了什么?
答案 0 :(得分:2)
resources :webhooks, only: [ :index, :show, :create, :update, :destroy ] do
member do
post :test
end
end
答案 1 :(得分:0)
这就是Rails路由器设置的方式。如果您不喜欢它的生成方式,您可以随时使用您喜欢的参数名称制作手动路线,就像您在第一个示例中所做的那样。
一般来说,我认为最好的两个人在这里采用这个惯例而不是贬低它。这只是参数的名称,而不是最终用户可见的内容。违反惯例越多,代码就越不规范,维护起来就越困难。