如何避免Rails 5嵌套资源命名空间路由中的双下划线
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何避免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
以上是关于如何避免Rails 5嵌套资源命名空间路由中的双下划线的主要内容,如果未能解决你的问题,请参考以下文章