在升级到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)category / admin / dashboards#show
在Rails 5升级之后,它现在会产生诸如以下的路线助手:
类别__category_admin_dashboard_path GET /schools/:category_id/admin/dashboard(.:format)category / admin / dashboards#show
我们尝试取消套路没有运气...我确定我们做错了或不合常规的事情。
有人可以提供有关如何纠正这种糟糕的Rails路线嵌套的建议吗?
答案 0 :(得分: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