Ruby on rails 从嵌套资源中删除命名空间

Ruby on rails 从嵌套资源中删除命名空间,ruby-on-rails,rails-routing,Ruby On Rails,Rails Routing,我有一个namspaced资源,但我想要一个特定的嵌套资源路由到一个无名称空间的控制器,例如: namespace :admin do resources :posts do # /admin/posts => Admin::PostsController resources :audits, only: [:index] # /admin/posts/1/audits => AuditsController end end 委员会: 如果需要在命名空间内使用不同的

我有一个namspaced资源,但我想要一个特定的嵌套资源路由到一个无名称空间的控制器,例如:

namespace :admin do
  resources :posts do # /admin/posts => Admin::PostsController
    resources :audits, only: [:index] # /admin/posts/1/audits => AuditsController
  end
end
委员会:

如果需要在命名空间内使用不同的控制器命名空间 块您可以指定绝对控制器路径,例如:get'/foo'=> “/foo#index”


但这会导致“错误的常量名称”,因为rails试图将
admin//audits
转换为常量。

我最终只是将其完全拆分并执行以下操作

get 'admin/users/:user_id/audits', to: 'audits#index'

我仍然不太理解指南中的引语,我想它一定是不正确的。

为什么不把你想要的资源拿出来?你能举个例子吗?我想要嵌套路由,所以我不确定您建议我做什么。如果您只是让类似这样的东西`资源:posts do#/admin/posts=>admin::PostsController资源:audits,only:[:index]#/admin/posts/1/audits=>audits controller end`它将创建路由,但会忽略管理名称空间,这就是您想要的。您可以同时拥有两条路由是的,但我需要posts资源的名称空间。我遇到了类似的问题,发现这个答案很有用: