如何将routes.rb拆分为多个文件

时间:2012-05-30 03:58:30

标签: ruby-on-rails-3 routes

我有很大的routes.rb文件,我想分成多个可管理的文件。

正如下文所述,我为路径创建了单独的文件夹,并在此文件夹中创建了多个路径文件 链接:http://rails-bestpractices.com/posts/73-split-route-namespaces-into-different-files

routes.rb
routes/user.rb
routes/manager.rb
routes/admin.rb
routes/anonymous.rb

在我的application.rb中,我设置了config.paths值。我使用了各种可能的组合,但我仍然无法加载所有辅助路由文件。

以下是我在application.rb文件中设置config.paths的代码列表。没有人在为我工作。

config.paths["config/routes"].concat(Dir[Rails.root.join("config/routes/*.rb")])
config.paths["config/routes"] = Dir[Rails.root.join("config/routes/*.rb")]
config.paths["config/routes"] = Dir[Rails.root.join("config/routes/*.rb")].each{|r| config.paths["config/routes"].unshift(r) }
config.paths.config.routes.concat Dir[Rails.root.join("config/routes/*.rb")]

感谢有人可以帮助我。请注意我使用的是Rails 3.2.1。我确信以上拆分路由的技术将适用于以前版本的Rails,但我无法使用3.2.1实现。

1 个答案:

答案 0 :(得分:4)

好的。我能够在main routes.rb中加载所有辅助路由。看起来很脏但它在Rails 3.2.1中工作。

Acme::Application.routes.draw do
  resources :users

  Dir[Rails.root.join("config/routes/*.rb")].each{|r| load(r)}

  resources :messages
  match '*path' => 'cms/pages#show'
  root :to => "home#index", :port => false
end

非常欢迎任何更清洁的方法。