2010-08-05 13 views
6

Gibt es eine Möglichkeit, alle Edelsteine ​​in einer Rails App neu zu laden, ohne den Server vollständig neu zu starten? Ich habe eine Gemfile, die :path verwendet, um eine Abhängigkeit zu referenzieren, die ich auf dem gleichen System entwickle, und es ist ärgerlich, die App zu beenden und rails -s jedes Mal erneut zu tun, wenn ich eine Änderung speichere. Es wäre auch schön in der Produktion, einen Edelstein zu aktualisieren, ohne den Server für ein paar Sekunden zu töten. Gedanken?Wie lade ich alle Edelsteine ​​in Rails 3 neu?

+0

Wurde das herausgefunden? – Tom

+0

Nein, habe nie eine gute Antwort bekommen. –

Antwort

6

Kürzlich fand ich, dass ich das gleiche tun möchte, wie Sie sagen, damit ich mit meinen Projekten Edelsteine ​​entwickeln kann.

In einem Gemfile Ich habe nicht gem Abhängigkeit enthalten, sondern fügte ich in config/Umgebungen/development.rb

ActiveSupport::Dependencies.autoload_paths << "/path_to_gem_dir/gem_name/lib" 

Es mir sync, aber in es mit machen einige zusätzliche Arbeit zu tun erfordert In den meisten Fällen ist es in Ordnung. Wenn ich mit der Bearbeitung eines Edelsteins fertig bin, kann ich den Autoload entfernen und die Gem-Abhängigkeit in Gemfile verwenden.

Denken Sie daran, dass Juwel Abhängigkeit in platziert werden kann: Produktion,: Test Gruppen, so in der Entwicklung haben Sie es gereinigt.

Zum Beispiel

group :development do 
    # gem "wirble" COMMENTED!, so I can autoload files! 
end 

group :production do 
    gem "wirble" 
end 

Glücklich Codierung!

+0

Danke für den Tipp! Ich würde hinzufügen, dass, wenn der Edelstein, an dem du arbeitest, zusätzliche Abhängigkeiten hat (in der Gemspec), solltest du sie zur Entwicklungsgruppe deiner gemfile hinzufügen oder sie werden nicht geladen. –

+0

Ja, Sie können dort nur Quellen hinzufügen. Ich habe es immer noch nicht geschafft, einen vollautomatischen Weg dafür zu finden, aber im Moment scheint es der nächste zu sein :) – m4risU

Verwandte Themen