Ruby on rails 为了更好地管理,将routes.rb文件拆分为多个文件的好方法是什么?
我正在从事一个rails 3项目,其中包含一个相当大的routes文件。它利用了一些嵌套,我遇到了一个问题,主要是因为路由文件很难管理 有没有办法把它分解成多个文件 比如: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
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