ruby-on-rails - 如何避免 Rails 5 嵌套资源命名空间路由中的双下划线
问题描述
在升级到 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 路线嵌套提供建议吗?
解决方案
替换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
推荐阅读
- swiftui - 在 SwiftUI TabView 中动态隐藏选项卡 - 选项卡在更多...溢出项中混合
- r - 用下一个更高的因子水平替换因子值
- github-pages - Jekyll 主题未加载
- r - 在R中合并具有不同列名的数据框
- python - 处理多种情况的最佳方法
- picker - 在 App Script 的 Google 选择器中过滤多种文件类型
- java - 将具有 json 数组属性的 JSON 对象转换为 java 对象时收到以下错误
- azure - Azure 服务总线接收和删除
- function - 如何从另一个文件调用函数
- aerospike - 通过端口转发访问 Kubernetes 中的 Aerospike 集群?