how to reload routes /config/routes/* in rails 4?

2019-03-27 06:52发布

How to force rails 4 to reload all route files?
That is without having to restart the application to make the routes from /config/routes/.rb get loaded* I did a split them up in /config/routes/.rb but these /config/routes/ files are not reloaded.

This worked in rails 3 but not 4:

#config.paths['config/routes'].unshift *Dir["config/routes/*.rb"]

3条回答
兄弟一词,经得起流年.
2楼-- · 2019-03-27 07:25

You can use:

Rails.application.reload_routes!

You can read about it here (will have to use find)

查看更多
smile是对你的礼貌
3楼-- · 2019-03-27 07:27
config.paths["config/routes.rb"] << YOUR_ROUTE_FILE
查看更多
对你真心纯属浪费
4楼-- · 2019-03-27 07:48

In Rails 3, if you are splitting the routes.rb file into multiple files, we have to add this line to application.rb:

config.paths['config/routes'].concat Dir[Rails.root.join("config/routes/*.rb")]

...and the corresponding routes in config/routes/*.rb files like this:

TestApp::Application.routes.draw do
  namespace :api do
    resources :test
  end
end

In Rails 4, Rails no longer provides a ["config/routes"] key in Rails::Engine.paths. However, in Rails 4, there is no need to add to config.path in application.rb.

Just add the corresponding routes under config/routes/*.rb.

查看更多
登录 后发表回答