На моем компьютере установлены две версии направляющих (2.1.0 и 2.2.2).
Можно ли при создании нового приложения указать, что я хочу использовать более старую (2.1.0) версию?
ruby-on-rails
hectorsq
источник
источник
Ответы:
Я нашел здесь недокументированный вариант создания нового приложения с использованием более старой версии Rails.
источник
_3.1.3_
new sample_app /home/ninad/.rbenv/versions/1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems.rb:314:inbin_path': can't find gem railties (["3.1.3"]) with executable rails (Gem::GemNotFoundException) from /home/ninad/.rbenv/versions/1.9.2-p290/bin/rails:19:in
<main> 'Вот команда, которую я обычно использую:
например
rails _2.1.0_ new my_app
Вот список всех доступных версий рельсов на данный момент:
http://rubygems.org/gems/rails/versions
источник
У меня возникли некоторые проблемы при использовании
rails _version_ new application_name
(полученный проект все еще был сгенерирован для самой последней установленной версии Rails.)После немного копать я нашел статью на Майкле Trojanek с альтернативным подходом. Это работает путем создания папки с Gemfile, указывающей желаемую версию Rails, и последующего ее использования,
bundle exec rails...
чтобы Bundler позаботился о запуске соответствующей версииrails
. Например, чтобы создать новый проект Rails 4.2.9, необходимо выполнить следующие шаги:источник
bundle update
, это также обновит рельсы !!bundle update
необходим, потому что используется обновление вручную (--skip-bundle
). Rails не будет обновлен, потому что в Gemfile указана конкретная версия (в примере 4.2.9.)--force
перезаписывает Gemfilebundle exec rails new...
запустил версию,rails
указанную в Gemfile, которая в итоге заменяется.)gem 'rails', '5.0.0.1' >> Gemfile
и после запускаbundle exec rails new
с параметромgem 'rails', '~> 5.0.0', '>= 5.0.0.1'
--force , его в Gemfile. Теперь, когда я запускаюbundle update
, он обновляет рельсы до 5.0.4 (в Gemfile.lock), но я ожидал использовать рельсы версии 5.0.0.1Как справедливо указано @mikej для Rails 5.0.0 или выше , вы должны выполнить следующие шаги:
Создайте каталог для вашего приложения вместе с Gemfile, чтобы указать желаемую версию Rails, и позволить bundler установить зависимые гемы:
Убедитесь, что установлена правильная версия направляющих:
$ bundle exec rails -v
Теперь создайте свое приложение, позвольте Rails создать новый Gemfile (или, скорее, перезаписать существующий, используя
--force
флаг), и вместо установки bundle (--skip-bundle
) обновите его вручную:Если вы проверите вход для рельсов
Gemfile
, это должно быть так:Вы должны обновить его до точной версии, необходимой для приложения:
Теперь последний шаг:
источник
Вы можете создать скелет с любой версией и потребовать ту, в которой вы хотите
config/environment.rb
:или используйте команду "rails" из той версии, которую вы хотите.
источник
Вы также должны взглянуть на «зависание» ваших драгоценных камней Rails в приложении. Это очень помогает при развертывании, особенно в средах общего хостинга.
Просто измените
RAILS_GEM_VERSION
переменную вconfig/environment.rb
и выполните задачу freeze rake:источник
Есть два способа добиться этого:
один, как предлагается в принятом ответе:
альтернативный метод - создать gemfile с желаемой версией rails перед инициализацией проекта rails
Я написал об этом подробно в моей статье
источник