2017-07-07 3 views
0

Ich habe ein Projekt Rails 5 und ich bin tief in metaprogramming Land.Wie würde ich ein Juwel automatisch laden, ohne Rails neu starten zu müssen?

Eine der Anforderungen besteht darin, dass einige der Gem Abhängigkeiten (dh die Gemfile) im laufenden Betrieb vom Systemadministrator geändert werden können. Dies ist beschränkt auf ein paar Edelsteine, die hinzugefügt werden können, und sie haben alle ähnliche :: Rails :: Engine-Strukturen.

Ich habe mehrere Strategien gespielt, einschließlich <Module>.autoload :<class_name>, <file path>, aber es lädt keine Abhängigkeiten.

Was ich tun möchte, ist dynamisch laden eine aktualisierte Gemfile.lock (im Grunde Bundler.setup) während Schienen läuft, ohne den Server neu starten zu müssen.

Kann ich bundle.install ausführen, die Autoload-Pfade ändern, Bundler.setup erneut ausführen, so etwas?

Fail das, würde ein bundle install dann Schienen Neustart viel stören?

+0

Ich denke, das ist nicht machbar, da wenn Sie ein Juwel installieren oder deinstallieren einige Konfigurationen geändert werden, und Sie müssen den Rails Server neu starten, um diese Änderungen zu erkennen –

Antwort

0

Nach vielen Untersuchungen sieht es so aus, als ob es nicht sicher ist. Bundler handhabt Abhängigkeiten gut und ist besser als was ich in diesem Fall schreiben könnte. Außerdem behandelt Rails Neustarts nett (touch restart.txt), also werde ich das tun.

Verwandte Themen