0

我有巨大的 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 实现。

4

1 回答 1

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

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

于 2012-05-30T04:10:33.770 回答