2016-09-12 5 views
3

Ich benutze Ruby on Rails 5 und ich frage mich, wie kann ich Code-Neuladen vor jeder Anfrage erzwingen. Der Grund dafür ist, dass ich Docker auf Mac verwende und mein Code in einem NFS-Ordner liegt. Daher funktioniert der Rails-Mechanismus zum Erkennen von Codeänderungen nicht richtig und ich muss die Rails nach jedem Codewechsel neu starten.Force-Code neu laden vor jeder Anfrage

Meine Frage ist also: Wie kann ich Rails zwingen, meinen Code vor jeder Anfrage neu zu laden?

+0

Haben Sie 'rb-fsevent' gem installiert? – maicher

+0

@maicher Nein, aber ich sehe nicht, wie das helfen würde. Kein Dateisystem-Tool/Monitor wird mir helfen, da der Code in einem NFS-Ordner lebt und Rails in Docker läuft. FiIe Change Events werden nicht erstellt/ausgeliefert. – alexandernst

+0

Hilft 'config.cache_classes = false'? Gemäß der [Rails-Dokumentation] (http://guides.rubyonrails.org/configuring.html) steuert 'config.cache_classes', ob Anwendungsklassen und Module bei jeder Anfrage neu geladen werden sollen. – Aetherus

Antwort

1

Sie können die Verwendung der rerun gem in Betracht ziehen. Dadurch können Sie eine Rack-Anwendung beim Ändern des Codes neu laden. Da Rails im Grunde eine komplexe Rack-Anwendung ist, sollte dies funktionieren.

Dies wird die gesamte (!) Schienen Anwendung jedes Mal neu laden, aber es wird neu geladen.

Ich benutze es derzeit in einer Traube API, wo ich es so laufen lasse, und Sie sollten in der Lage sein, Ihre Rails-Anwendung auf die gleiche Weise zu betreiben.

PS: Möglicherweise möchten Sie auch zusätzliche Parameter wie Port usw. dort auch.

Verwandte Themen