参数错误的路由

路易斯·E。

我有以下路线:

resources :users, only: [] do
  resources :events, only: %i[index]
  delete :close_account, on: :member
end

出于某种原因,它生成具有不同参数的路由:

       GET      /backoffice/users/:user_id/events(.:format)               backoffice/events#index
       DELETE   /backoffice/users/:id/close_account(.:format)             backoffice/users#close_account

在一条路线中,参数是user_id,下面的路线是id我希望两者都是user_id,所以我添加了resources :users, param: :user_id

现在的路线比以前更奇怪了:

      GET      /backoffice/users/:user_user_id/events(.:format)          backoffice/events#index
      DELETE   /backoffice/users/:user_id/close_account(.:format)        backoffice/users#close_account

我该如何修复这条路线,让两条路线都具有相同的参数?

维约克

参数没有“错误”。您看到此行为的原因是id参数名称在此处保留给最内部的资源。也就是说,如果您EventsController除了 之外还有其他一些操作index,它将接收事件 id 为id,而相关的Userid 为user_id另一个路由不是嵌套资源,因此不需要不同的前缀。

这可以在有关嵌套资源Rails 指南部分中看到

话虽如此,如果你真的希望两者都被称为user_id,你应该使用

delete "/backoffice/users/:user_id/close_account/", to: "backoffice/users#close_account"

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章