Указание версии рельсов для использования при создании нового приложения - PullRequest
211 голосов
/ 18 декабря 2008

На моем компьютере установлены две версии направляющих (2.1.0 и 2.2.2).

Когда я создаю новое приложение, можно ли указать, что я хочу использовать более старую (2.1.0) версию?

Ответы [ 6 ]

463 голосов
/ 17 января 2009

Я нашел здесь недокументированный вариант создания нового приложения с использованием более старой версии Rails.

rails _2.1.0_ new myapp 
62 голосов
/ 07 января 2014

Вот команда, которую я обычно использую:

rails _version_ new application_name

например rails _2.1.0_ new my_app

Вот список всех доступных версий рельсов:

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

24 голосов
/ 18 марта 2017

У меня возникли некоторые проблемы при использовании rails _version_ new application_name (полученный проект все еще был сгенерирован для самой последней установленной версии Rails.)

После небольшой копки я нашел статью Michael Trojanek с альтернативным подходом. Это работает путем создания папки с Gemfile с указанием желаемой версии Rails, а затем с использованием bundle exec rails..., чтобы Bundler позаботился о запуске соответствующей версии rails. например чтобы сделать новый Rails 4.2.9 проект, нужно выполнить следующие шаги:

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
4 голосов
/ 25 октября 2018

Как правильно заметил @mikej для Rails 5.0.0 или выше , вы должны выполнить следующие шаги:

Создайте каталог для вашего приложения вместе с Gemfile, чтобы указать желаемую версию Rails, и разрешите упаковщику установить зависимые гемы:

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

Убедитесь, что установлена ​​правильная версия направляющих: $ bundle exec rails -v

Теперь создайте ваше приложение, позвольте Rails создать новый Gemfile (или, скорее, перезаписать существующий, используя флаг --force), и вместо установки пакета (--skip-bundle) обновите его вручную:

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

Если вы проверите запись для рельсов в Gemfile, она должна выглядеть следующим образом:

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

Вы должны обновить его до точной версии, необходимой для приложения:

gem 'rails', '5.0.0.1'

Теперь последний шаг:

$ bundle update
3 голосов
/ 19 декабря 2008

Вы также должны взглянуть на «зависание» ваших драгоценных камней Rails в приложении. Это очень помогает при развертывании, особенно в средах с общим хостингом.

Просто измените переменную RAILS_GEM_VERSION в config/environment.rb и выполните задание замораживания рейка:

rake rails:freeze:gems
3 голосов
/ 18 декабря 2008

Вы можете сгенерировать скелет с любой версией и потребовать ту, которая вам нужна в config/environment.rb:

# Specifies gem version of Rails to use when vendor/rails is not present
RAILS_GEM_VERSION = '2.1.2' unless defined? RAILS_GEM_VERSION

или используйте команду "rails" из той версии, которую вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...