如何避免Rails 5嵌套资源命名空间路由中的双下划线

问题描述 投票:0回答:1

我们有一些嵌套的资源/命名空间路由在升级到Rails 5之前有效,但现在使用Rails 5路由抱怨路由上没有明确的as:来命名路由/路径帮助器。

以下是我们的路由嵌套示例:

resources :categories, path: "schools", only: [:index, :show, :create] do
  namespace :categories, path: "", as: nil do
    resource :increment, only: [:new]
    namespace :admin, path: "admin" do
      resource :dashboard, only: [:show]
    end
  end
end

在rails 5升级之前,这将产生路线助手,如:

category_admin_dashboard_path GET /schools/:category_id/admin/dashboard(.:format)categories / admin / dashboards #show

在Rails 5升级之后,现在生成路由助手,如:

categories__category_admin_dashboard_path GET /schools/:category_id/admin/dashboard(.:format)categories / admin / dashboards #show

我们已经尝试过没有运气而没有嵌套路线......我确信我们做错了什么或非常规。

有人可以就如何纠正Rails路线的这种不良嵌套提出建议吗?

ruby-on-rails ruby-on-rails-4 routing ruby-on-rails-5
1个回答
0
投票

namespace :categories替换scope module: :categories

resources :categories, path: "schools", only: [:index, :show, :create] do
  scope module: :categories do
    resource :increment, only: [:new]
    namespace :admin, path: "admin" do
      resource :dashboard, only: [:show]
    end
  end
end
© www.soinside.com 2019 - 2024. All rights reserved.