Ruby on rails 为了更好地管理,将routes.rb文件拆分为多个文件的好方法是什么?

Ruby on rails 为了更好地管理,将routes.rb文件拆分为多个文件的好方法是什么?,ruby-on-rails,ruby,routes,partitioning,Ruby On Rails,Ruby,Routes,Partitioning,我正在从事一个rails 3项目,其中包含一个相当大的routes文件。它利用了一些嵌套,我遇到了一个问题,主要是因为路由文件很难管理 有没有办法把它分解成多个文件 比如: My::Application.routes.draw do constraints(:subdomain => 'admin') do include My::Application::Routes::AdminRoutes end include My::Application::Routes

我正在从事一个rails 3项目,其中包含一个相当大的routes文件。它利用了一些嵌套,我遇到了一个问题,主要是因为路由文件很难管理

有没有办法把它分解成多个文件

比如:

My::Application.routes.draw do
  constraints(:subdomain => 'admin') do
    include My::Application::Routes::AdminRoutes
  end

  include My::Application::Routes::MainRoutes
end
或者

或者类似的东西


谢谢

include
将包含的模块的方法插入命名空间,而
require
只将文件加载到顶级命名空间中。这些都不适合你

只需加载单独的文件即可

My::Application.routes.draw do
  constraints(:subdomain => 'admin') do
    load 'routes/admin_routes.rb'
  end

  load 'routes/main_routes.rb'
end

您可以使用的另一个选项

ActionController::Routing::Routes.draw do |map| #routes.rb

  extend NewConnections

  some_method(map)  

end 


module NewConnections #/lib/new_connections.rb

  def some_method(clazz)
    clazz.root :controller => "demo"
  end

end

这将把应用程序的根连接到默认控制器

在我看来很酷。我们将试一试,看看这会把我们带到哪里。routes/admin_routes.rb文件应该是什么样子?我们在尝试不同的事情时遇到了一些问题。它只需要包装在一个模块中吗?据我所知,它是在上下文中进行计算的,所以它应该只包含在其中的任何内容,如果您没有将其分解为单独的文件的话。这对Rails 2.x路由很有好处。它仍然可以在Rails3.0上使用,但是使用
map
是不推荐的,并且在3.1上会失败+
ActionController::Routing::Routes.draw do |map| #routes.rb

  extend NewConnections

  some_method(map)  

end 


module NewConnections #/lib/new_connections.rb

  def some_method(clazz)
    clazz.root :controller => "demo"
  end

end