Ruby on rails Rails 3在自定义目录中带有控制器的默认路由

Ruby on rails Rails 3在自定义目录中带有控制器的默认路由,ruby-on-rails,ruby-on-rails-3,ruby-on-rails-3.1,Ruby On Rails,Ruby On Rails 3,Ruby On Rails 3.1,我需要为我的应用程序创建默认路由: match '/:controller(/:action(/:id))' 问题是我的控制器位于不同的文件夹中,如下所示: /myapp/app/controller/admin/base_controller.rb 但是,Rails似乎无法通过我的默认路由识别这些控制器,但如果控制器位于“myapp/app/controller/some_controller.rb”中,Rails会识别控制器。我认为您需要为每个目录添加一个名称空间,其中包含以下目录中的

我需要为我的应用程序创建默认路由:

match '/:controller(/:action(/:id))'
问题是我的控制器位于不同的文件夹中,如下所示:

/myapp/app/controller/admin/base_controller.rb 

但是,Rails似乎无法通过我的默认路由识别这些控制器,但如果控制器位于“myapp/app/controller/some_controller.rb”中,Rails会识别控制器。

我认为您需要为每个目录添加一个名称空间,其中包含以下目录中的默认路由:

namespace :admin do
  match '/:controller(/:action(/:id))'
end

namespace :something_else do
  match '/:controller(/:action(/:id))'
end
您可能可以通过使用Dir和File类检查目录结构,以编程方式完成这项工作。无论哪种情况,我都建议不要使用默认路线,除非你有充分的理由这样做