Frage

Was bedeutet das?

In den Anweisungen für ein Projekt, sagte, es "einfrieren der Schienen Edelsteine".Ist, dass anders als das einfrieren der Rails-version?

Was ist das einfrieren über?

War es hilfreich?

Lösung

Wenn einer der Autoren ein Schmuckstück, die Sie verwenden, die Einführung einer neuen version des gem, gibt es eine Möglichkeit die neue version führt rückwärts inkompatible änderungen brechen würde, dass Sie Ihre code.

Das einfrieren einer gem steckt Sie in der vendor-Ordner der Anwendung, und es wird nicht automatisch aktualisiert wird, auf seine eigenen.Rails wird mit dieser version des gem, statt.

Diese können Sie zur Aktualisierung das Juwel auf Ihrem system für andere apps, während Sie Ihre Sohle-app verwenden Sie die version der Edelstein, die Sie schon immer arbeiten, und daher ist stabil.

Dies gilt für die rails-Juwel selbst, wie es auch auf neueren Versionen von rails könnte schließlich dazu führen, dass etwas in Ihrer app zu brechen, einfrieren es wird verhindert, dass das system weit update (und, noch einmal, können Sie für die Aktualisierung anderer apps auf Ihrem Rechner, während Sie die app, die Sie einfrieren Schienen in dieser version number.

Andere Tipps

Ich denke, Phillc trifft den Nagel auf den Kopf mit seinen Kommentaren.

Wenn Sie haben eine Anwendung, die in einer Produktionsumgebung, dass die Leute verlassen sich auf arbeiten, müssen Sie einen Mechanismus zum 'einfrieren' der Umwelt.Aktualisierung Schienen verursachen könnte Ihre Anwendung nicht mehr ordnungsgemäß funktioniert.

Es könnte etwas kleinere oder etwas, das hält Ihre Benutzer immer Ihre Arbeit getan.

Nur google 'rails gem update bricht mir das app", um zu sehen, einige Schwanz von wehe.

Igor Minar hat einen guten blog-Eintrag, warum sollten Sie Sie einfrieren beide Edelsteine und Schienen als auch diskutieren, wie Sie können nun spezifische gem-Versionen von Abhängigkeiten in Rails.

Sie können die freeze-Schienen, kann man einfrieren Edelsteine, können Sie die Abhängigkeit von speziellen Edelstein-version in Ihrer Umgebung.rb-Datei.

Der Grund, warum Sie dies tun ist, um sicherzustellen, dass Ihre app nicht brechen, wenn eine aktualisierte version von einem Schmuckstück oder von Schienen ist freigegeben.Einfrieren können Sie überprüfen, ein update auf eine separate Maschine, machen sicher, es geht alles von Ihrer automated test suites, lässt Ihre Nutzer stellen die aktualisierte app auf Herz und Nieren, und dann (nach einem guten backup) wenden Sie das update auf dem Stein oder auf Rails.

Einfrieren ist toll - wie andere gesagt haben, es verringert Ihre Abhängigkeit von Ihrer externen Umwelt.Es ist besonders wichtig, wenn Sie auf shared-hosting, oder sonst nicht die volle Kontrolle, wo Sie bereitstellen.

Es kann jedoch problematisch sein, für Programme wie rake und capistrano, dass nicht ausführen, in Ihre Rails-Umgebung.Sie haben Ihren eigenen Edelstein-laden-Pfad, die Sie beeinflussen können, aber Sie müssen sich dessen bewusst sein.Auch ein Edelstein mit nativen Erweiterungen (libxml, hpricot, ...) können nicht eingefroren werden, da die OS-spezifischen bits müssen noch live in der externen OS.

Auch, wahrscheinlich nicht ein Problem jetzt aber etwas bewusst zu sein - Schienen 3 bewegt, um eine neue Methode zum verwalten von plugins, gems, und das vendor-Verzeichnis im Allgemeinen.Es ist alle Art von ein Chaos im moment.

Hier ist ein tutorial geht das einfrieren in einer rails-app.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top