Ich habe kürzlich ein Rails-Projekt aktualisiert, an dem ich arbeite, von 2.0.5 bis 2.3.2. Ich bemerkte, dass es eine lokale Kopie der 2.0.5 Rails-Dateien in Vendor/Rails gab und ich fragte mich, ob ich eine lokale Kopie der 2.3.2 Rails-Dateien dort hineinlegen sollte oder sie einfach weglassen sollte? Was ist eine bessere Praxis?Lokale Kopie von Rails in einer Schienenanwendung
Antwort
Ja. Die Kopie von Rails, die in vendor/rails
sitzt, wird tatsächlich vor den Rails-Gems verwendet, die systemweit installiert sind. Mit anderen Worten, obwohl Sie Ihre Rails-Installation aktualisiert haben, läuft Ihre App tatsächlich noch unter Version 2.0.5.
Das Verzeichnis vendor/rails
existiert, damit Sie Ihre App auf eine bestimmte Version von Rails "einfrieren" können, wodurch sie weniger anfällig für Änderungen in der Konfiguration der Maschine ist, auf der sie läuft. Dies ist so nützlich, dass es eine automatisierte Möglichkeit gibt, das Verzeichnis zu verwalten. Um die vorhandene Version von Rails zu löschen in vendor/rails
sitzen, gehen Sie auf die Wurzel Ihrer Rails Projektverzeichnis und wie folgt vorgehen:
rake rails:unfreeze
installieren Sie die aktuellste Rails Edelsteine auf dem System in vendor/rails
, tun:
rake rails:freeze:gems
Es gibt ein paar andere Dinge, die Sie mit vendor/rails
tun können. Eine vollständige Liste der Befehle finden Sie unter rake -T
.
P.S. Wenn Sie jemals jemanden darüber reden hören, dass seine Rails-Installation "vendored" ist, dann meinen sie das.
In der Zwischenzeit haben sich die Dinge ein wenig verändert.
rake rails:freeze
und
rake rails:unfreeze
sind veraltet. Stattdessen sollten Sie verwenden:
bundle install --path vendor/bundle
und
bundle install --system
zu wechseln.
- 1. Verwenden Sie einen ElasticSearch-Server der Schienenanwendung in einer anderen Schienenanwendung.
- 2. Wie dokumentiert man eine Schienenanwendung?
- 3. Lokale Kopie des SVN-Repository, Synchronisierung mit Remote-Kopie?
- 4. Lokale Kopie von MathJax auf einem Jupyter-Notebook
- 5. Können Sie irgendwie eine lokale Kopie von AWS DynamoDB ausführen?
- 6. Wie kann ich eine lokale Kopie von Grails Repository erstellen
- 7. Äquivalent des Verweises "Lokale Kopie" in ASP.NET-Website-Projekt
- 8. Bearbeitung in einer Kopie von Arraylist Original
- 9. Wie lokale Kopie der E-Mail speichern, bevor (in procmail)
- 10. Erstellen einer Kopie einer Ansicht?
- 11. Lokale Zeitzonen in neue Rails-Anwendung migrieren
- 12. Erstellen einer Kopie einer UIView in Swift
- 13. Kann ich SPARQLwrapper mit einer lokalen Kopie von DBPedia verwenden?
- 14. wie twitter-Bootstrap CDN lokale Kopie zu Rückfall
- 15. Perforce speichern eine lokale Kopie der geöffneten Datei
- 16. Rails - Lokale Variablen versus Instanzvariablen
- 17. lokale Rails mit Domain-Namen?
- 18. Speichern einer Kopie der Textdatei von Matlab
- 19. SVN - Komplette lokale Kopie auf HEAD aktualisieren Version
- 20. Warum ist die Eigenschaft Lokale Kopie für meine Referenz deaktiviert?
- 21. Flache Kopie und tiefe Kopie in C
- 22. Verknüpfung mit einer lokalen Kopie von Bootstrap bricht CSS
- 23. Wo Code der "intelligenten Anfrage" setzen Datenbank in Schienenanwendung setzen?
- 24. Powershell gibt lokale Kopie nicht unterstützt bei der Verwendung von Variablen in Pscp
- 25. Effiziente Kopie von einer Datei in eine andere
- 26. Erstellen einer Kopie von 2D-Array in Angular 2 Klasse
- 27. Shallow Kopie einer Karte in Java
- 28. Erstellen einer Kopie eines Objekts in C++
- 29. Erstellen einer statischen Kopie einer MoinMoin-Site
- 30. Wie sicher ist der lokale Thread in Rails?
Ja, ich habe bemerkt, dass es die lokale Kopie verwendet, also habe ich einfach die Schienen dir vom Anbieter entfernt. Danke für die Antwort. – AdamB