9

I'm in the process of upgrading a rails 3 app to rails 4.0.1.

In my rails 3 app I have the following code in the my application.rb to use multiple route files.

config.paths["config/routes"] += Dir[Rails.root.join('config', 'routes', '*.rb').to_s]

but that throws an exception when I try to use the same thing in rails 4.

Any tips?

4

3 回答 3

26

在我的一个较大的应用程序中,我在config/routes.rb文件中使用以下代码段。

class ActionDispatch::Routing::Mapper
  def draw(routes_name)
    instance_eval(File.read(Rails.root.join("config/routes/#{routes_name}.rb")))
  end
end

YourApplication::Application.routes.draw do
  # Loads config/routes/common.rb
  draw :common
  # Loads config/routes/another.rb
  draw :another
end

Rails 4 最初支持draw :routeName但由于没有显示任何改进 而被删除。(我不知道 ^.^)你可以在这里查看 git commit:https ://github.com/rails/rails/commit/5e7d6bba79393de0279917f93b82f3b7b176f4b5

于 2013-11-05T02:59:50.627 回答
3

查看这个 SO 答案:rails 4: split routes.rb into multiple small files

看起来这种能力在 Rails 4 中已被弃用。

于 2013-11-05T02:58:40.177 回答
1

我不知道你的应用程序有多大。但是,如果您需要对 Rails 路由进行一些适当的重构,您应该查看rails 4 中的路由问题。

Mo' 文件,mo' 问题。

于 2013-11-05T03:06:12.503 回答