У меня есть две версии рельсов (2.1.0 и 2.2.2), установленных на моем компьютере.
Когда я создаю новое приложение, можно ли указать, что я хочу использовать более старую версию (2.1.0)?
У меня есть две версии рельсов (2.1.0 и 2.2.2), установленных на моем компьютере.
Когда я создаю новое приложение, можно ли указать, что я хочу использовать более старую версию (2.1.0)?
Я нашел здесь недокументированную опцию для создания нового приложения с использованием старой версии Rails.
rails _2.1.0_ new myapp
Вот команда, которую я обычно использую:
rails _version_ new application_name
например rails _2.1.0_ new my_app
Вот список всех доступных версий рельсов:
У меня возникли проблемы с использованием 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
Вы можете сгенерировать скелет с любой версией и потребовать тот, который вы хотите, в 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 в приложении. Это очень помогает при развертывании, особенно в средах с общим хостингом.
Просто измените переменную RAILS_GEM_VERSION
в config/environment.rb
и выполните задание на замораживание:
rake rails:freeze:gems