我正在使用相当大的路径文件的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
或类似的东西。
谢谢!
答案 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
这会将应用程序的根目录连接到默认控制器