Подтвердить что ты не робот

Как вы используете несколько версий рельсов с rbenv?

Можно ли использовать несколько версий рельсов с использованием rbenv (например, 2.3 и 3.1)? Это было легко с gemset в rvm, но мне интересно, что лучший способ сделать это сейчас, когда я переключился на rbenv (также, я ищу способ сделать это без rbenv-gemset).

4b9b3361

Ответ 1

Не уверен, если у вас есть ответ на этот вопрос, но я подумал, что предлагаю то, что сделал, и, похоже, это сработало.

Итак, как только вы установите rbenv и используете его для установки конкретной версии ruby, вы можете установить несколько версий рельсов для этого рубина.

ШАГ 1. Установите любую версию рельсов, которые вы хотите, для рубиновой версии

% RBENV_VERSION=1.9.2-p290 rbenv exec gem install rails --version 3.0.11

Используя префикс "RBENV_VERSION = 1.9.2-p290" в командной строке, вы указываете, к какому рубиновому rbenv следует относиться.

Затем, следуя команде "rbenv exec", вы можете установить рельсы. Просто используйте флаг версии, как в примере, чтобы указать, какую версию вы хотите. Не уверен, что вы можете установить несколько версий одним выстрелом, но я просто запускаю эту команду столько раз, сколько необходимо для установки каждой версии, которую я хочу.

Примечание. Все это будет управляться в вашем каталоге rbenv, поэтому оно будет абсолютно безопасным и содержащимся.

ШАГ 2. Создайте новый проект рельсов, указав желаемую версию рельсов.

% RBENV_VERSION=1.9.2-p290 rbenv exec rails _3.0.11_ new my_project

ШАГ 3. Не забудьте зайти в этот проект и установить локальную версию rubyv ruby.

% cd my_project
% rbenv local 1.9.2-p290

Теперь, если вы хотите удалить этот проект, просто удалите его как обычно.

Если вы хотите удалить/управлять версией rails из rbenv gems, вы можете использовать обычные команды gem, просто префикс своей командной строки:

% RBENV_VERSION=1.9.2-p290 rbenv exec gem {some command}

И, конечно, вы можете удалить полную рубиновую версию и все ее прокладки и т.д., которые легко управляются внутри rbenv. Мне нравится, как все включено.

Надеюсь, что это поможет.

Для справки, это довольно хорошая прогулка по крайней мере из этого материала:

http://ascarter.net/2011/09/25/modern-ruby-development.html

Ответ 2

Существует плагин rbenv под названием rbenv-gemset, который должен вести себя аналогично команде rvm gemset, но поскольку rbenv никогда не предназначался для работы таким образом, я не пробовал.

Я обычно управляю версиями Rails с Bundler, как предложил Натан в комментариях к одному из других ответов. Я создаю Gemfile с моей желаемой версией Rails, запустил bundle install, создал приложение Rails, заменил Gemfile и передал Bundler:

mkdir my-rails-app
cd my-rails-app
echo "source 'https://rubygems.org'" > Gemfile
echo "gem 'rails', '3.2.17'" >> Gemfile
bundle install

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

Если вы хотите более подробно, я написал статью в своем блоге об этом.

Надеюсь, что это поможет!