什么是将routes.rb文件分成多个文件以便更好地管理的好方法?

时间:2010-11-08 15:09:51

标签: ruby-on-rails ruby routes partitioning

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

有没有办法将其分解为多个文件?

类似的东西:

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

  include My::Application::Routes::MainRoutes
end

或者...

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

  require 'routes/main_routes.rb'
end

或类似的东西。

谢谢!

2 个答案:

答案 0 :(得分:6)

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

只需load个单独的文件

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

  load 'routes/main_routes.rb'
end

答案 1 :(得分:0)

您可以使用的其他选项

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

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