【问题标题】:How to split routes.rb into multiple files [duplicate]如何将routes.rb拆分为多个文件[重复]
【发布时间】:2012-05-30 03:58:30
【问题描述】:

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

【问题讨论】:

    标签: ruby-on-rails-3 routes


    【解决方案1】:

    好的。我能够在 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
    

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

    【讨论】:

    • 我更喜欢使用Rails.root.join("config", "routes", "*.rb")
    猜你喜欢
    • 2013-09-21
    • 2012-02-13
    • 1970-01-01
    • 2014-05-18
    • 2019-01-06
    • 2011-08-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多