2016-03-23 13 views
0

Wie erzwingen Sie unbedingt, die Routen in before_action neu zu laden? Rails.application.reload_routes! lädt die Routen nur neu, wenn eine Änderung in routes.rb erfolgt. HierSchienen 4.2: Gewusst wie nachladen (Motor) Route?

ist das Kapitel in ActionDispatch::Routing darüber, wie die Route neu zu laden:

Reloading routes 

You can reload routes if you feel you must: 

Rails.application.reload_routes! 

This will clear all named routes and reload routes.rb if the file has been modified from last load. To absolutely force reloading, use reload!. 

Es gibt kein Detail, wie zu zwingen, außer zu nachladen reload! zu erwähnen. Versucht Rails.application.reload! in before_action und es hat nicht funktioniert. In application controller:

before_action :reload_route 

def reload_route 
    Rails.application.reload_routes! 
end 

Wenn der Motor Name MyEngine ist, was ist der richtige Weg, um seine Route zu zwingen, neu zu laden?

+0

warum wollen Sie die 'route_helpers' in Laufzeit zu zwingen, neu zu laden? das macht keinen sinn in 'production' – illusionist

+0

Für konstante in routes.rb – user938363

+0

' Rails.application.reload_routes! 'kann auch funktionieren. – user938363

Antwort

0

config.paths["config/routes.rb"] << YOUR_ROUTE_FILE

+0

Der Pfad der Engine-Routendatei lautet '/ my_engine/config/routes.rb'. Haben wir 'config.paths [" config/routes.rb "] <<" my_engine/config/routes.rb "' in 'before_action'? – user938363

Verwandte Themen