Я использую rbenv, но другие члены команды используют RVM.Dynamic Gemfile Ruby для Rbenv и RVM
При указании версии ruby 2.x.x
в Gemfile я делал это:
ruby ENV['RBENV_VERSION'] || '2.2.4'
который захватывает текущую версию я использую из rbenv и использует его для Gemfile. Однако в производстве он отсутствует и использует указанную версию после ||
.
Я искал аналогичный способ сделать это в RVM, конечной целью которого является создание Gemfile, где все разработчики могут использовать свою локальную версию Ruby, а конкретная версия указана для производства.
Это позволит разработчикам использовать rbenv или RVM для проекта, а также не устанавливать новые версии Ruby каждый раз, когда они работают над проектом с установленной версией.
Есть ли пользователи RVM, которые могут дать мне эквивалент ENV['RBENV_VERSION']
для RVM? Я много искал и не нашел ничего, что мне нравилось.
Лучший ответ, который я вижу, - это использование пользователями RVM версии с именем переменной окружения, согласованным командой и используемым как «Specifying a Ruby version via the environment», а также использование этого в Gemfile.
Учитывая, что конкретная рубиновая версия '2.2.4' является * только * предназначена для производства, а не для разработки, почему это в вашем« Gemfile »в первую очередь?Почему бы не поставить его куда-нибудь более разумным, например 'config/deploy.rb'? –
Я развертываю в Heroku, и, как показывают их документы, я помещаю рубиновую версию в Gemfile, показанную здесь (https://devcenter.heroku.com/articles/ruby-versions). Даже если бы я поставил версию в другом месте, это не отвечает на мой вопрос. Это только переместит проблему в другой файл :) – bideowego
Ahh ok, я понимаю вашу проблему сейчас. (BTW, мое предложение отвечало на вопрос - проблема все еще связана с разделением конфигурации разработки и производства.) Как насчет использования https://github.com/bkeepers/dotenv для хранения версии рубинового разработки? Будет ли это работать? –