250 Stimmen

Festlegen der zu verwendenden Schienenversion bei der Erstellung einer neuen Anwendung

Ich habe zwei Versionen von Rails (2.1.0 und 2.2.2) in meinem Computer installiert.

Kann ich beim Erstellen einer neuen Anwendung angeben, dass ich die ältere Version (2.1.0) verwenden möchte?

0 Stimmen

536voto

hectorsq Punkte 69756

Ich fand aquí eine undokumentierte Option zur Erstellung einer neuen Anwendung mit einer älteren Version von Rails.

rails _2.1.0_ new myapp

1 Stimmen

Sie sollten dies auf die akzeptierte Antwort ändern, da es für Rails 2 und 3 funktioniert. Die Antwort von Keltia wird nicht mehr funktionieren, wenn Sie Rails 3 installiert haben und eine Rails 2-Applikation wünschen.

0 Stimmen

Irrtümlicherweise schlägt die Installation von Rails 3 fehl bei 2.3.5 -- Soeben auf Mac OS X Snow Leopard mit diesen installierten Modulen getestet:rails (3.0.5, 2.3.5, 2.2.2, 1.2.6)

15 Stimmen

Dies ist eine RubyGems-Funktionalität, keine Rails-Funktionalität; sie ist daher nicht von der Rails-Version abhängig und funktioniert auch mit anderen Gems. (Danke, das ist eine tolle Antwort!)

77voto

Hardik Punkte 3678

Hier ist der Befehl, den ich normalerweise verwende:

rails _version_ new application_name

zum Beispiel rails _2.1.0_ new my_app

Hier ist die Liste aller bisher verfügbaren Schienenversionen:

http://rubygems.org/gems/rails/versions

29voto

mikej Punkte 63496

Ich hatte einige Probleme mit der rails _version_ new application_name (das resultierende Projekt wurde noch für die neueste installierte Version von Rails erstellt).

Nach einigem Suchen fand ich ein Artikel por Michael Trojanek mit einem alternativen Ansatz. Dies funktioniert, indem man einen Ordner mit einem Gemfile erstellt, das die gewünschte Version von Rails angibt und dann mit bundle exec rails... so dass Bundler sich um die Ausführung der entsprechenden Version von rails . z.B. um ein neues Rails 4.2.9 Projekt zu erstellen sind die Schritte:

mkdir myapp
cd myapp
echo "source 'https://rubygems.org'" > Gemfile
echo "gem 'rails', '4.2.9'" >> Gemfile
bundle install

bundle exec rails new . --force --skip-bundle
bundle update

0 Stimmen

Ich glaube nicht, dass es notwendig ist bundle update wird es auch Schienen aktualisieren!!

0 Stimmen

@devel die bundle update ist erforderlich, weil eine manuelle Aktualisierung verwendet wird ( --skip-bundle ). Rails wird nicht aktualisiert, da in der Gemfile eine bestimmte Version angegeben ist (im Beispiel 4.2.9).

0 Stimmen

--force überschreibt die Gemfile

18voto

Rajkaran Mishra Punkte 4014

Wie von @mikej zu Recht hervorgehoben Rails 5.0.0 oder höher sollten Sie diese Schritte befolgen:

Erstellen Sie ein Verzeichnis für Ihre Anwendung zusammen mit einem Gemfile, um die gewünschte Rails-Version anzugeben und lassen Sie Bundler die abhängigen Gems installieren:

$ mkdir myapp
$ cd myapp
$ echo "source 'https://rubygems.org'" > Gemfile
$ echo "gem 'rails', '5.0.0.1'" >> Gemfile
$ bundle install

Überprüfen Sie, ob die richtige Version von Rails installiert ist: $ bundle exec rails -v

Erstellen Sie nun Ihre Anwendung, lassen Sie Rails ein neues Gemfile erstellen (oder überschreiben Sie das bestehende mit der Option --force Flagge) und anstelle der Installation des Pakets ( --skip-bundle ) sie manuell aktualisieren:

$ bundle exec rails new . --force --skip-bundle

Wenn Sie den Eintrag für Schienen in Gemfile sollte es so sein:

gem 'rails', '~> 5.0.0', '>= 5.0.0.1'

Sie sollten sie auf die genaue Version aktualisieren, die für die Anwendung benötigt wird:

gem 'rails', '5.0.0.1'

Und nun der letzte Schritt:

$ bundle update

10voto

Prakash Punkte 571

Es gibt zwei Möglichkeiten, dies zu erreichen:

eine, wie in der akzeptierten Antwort vorgeschlagen:

gem install rails -v 2.1.0 #only when the gem has not been installed in the desired ruby version you are using, so that you don't get error on next step
rails _2.1.0_ new my_app

und eine alternative Methode ist, gemfile mit der gewünschten Rails-Version zu erstellen, bevor das Rails-Projekt initialisiert wird

mkdir my_app
cd my_app
echo "source 'https://rubygems.org'" > Gemfile
echo "gem 'rails', '2.1.0'" >> Gemfile
bundle install

bundle exec rails new . --force --skip-bundle

Ich habe darüber ausführlich geschrieben in meinem Artikel

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X