Rails 3默认路由与自定义目录中的控制器

时间:2011-11-14 20:43:51

标签: 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'中。

1 个答案:

答案 0 :(得分:0)

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

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

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

您可以通过使用Dir和File类检查目录结构以编程方式执行此操作。在任何一种情况下,我建议不要使用默认路由,除非你有充分的理由这样做。