Ответ 1
Если вы используете rvm, запустите это:
$ rvm use 1.9.3
Я ввел существующее рубиновое приложение и набрал:
$rails s
хотел запустить сервер рельсов. но он сказал:
Ваша версия Ruby - 1.8.7, но ваш Gemfile указан 1.9.3
На самом деле у меня был 1.8.7, но я удалил его. И если я это сделаю:
$ruby -v
он сказал: ruby 1.9.3p286 (2012-10-12, редакция 37165) [x86_64-darwin11.4.2]
Поэтому я не знаю, как это исправить. Можете ли вы мне помочь?
Если вы используете rvm, запустите это:
$ rvm use 1.9.3
попробуйте использовать bundler
bundle exec rails s
У меня была аналогичная проблема:
$ bundle install
Your Ruby version is 2.1.0, but your Gemfile specified 1.9.3
а
$ ruby -v
1.9.3-p484
$ which ruby
/home/malo/.rvm/rubies/ruby-1.9.3-p484/bin/ruby
Я нашел пять ответов: 1, 2, 3, 4, 5. Также было открыть вопрос на github. Однако я решил проблему следующим образом:
Получил путь к моему bundler:
$ which bundle
/home/malo/.rvm/gems/[email protected]/bin/bundle
Открыл его для редактирования (или просто cat it) и увидел, что у него неверная ссылка на ruby в первой строке:
$ cat $(which bundler)|head -n 1
#!/home/malo/.rvm/rubies/ruby-2.1.0/bin/ruby
Затем я получаю путь к текущему действительному рубину и просто заменяю его недействительным:
$ which ruby
/home/malo/.rvm/rubies/ruby-1.9.3-p484/bin/ruby
Конечно, вы также можете попробовать заменить его на общую форму:
#!/usr/bin/env ruby
Это должно забрать используемую в настоящее время рубиновую версию.
Я выяснил причину, по которой я получал эту ошибку, в том, что я обманывал программу командной строки Heroku внутри моих файлов конфигурации, а Heroku Toolbelt поставляется с собственной версией Ruby.
Два решения этой проблемы: либо не выгружать в Heroku, либо использовать блок Bundler.with_clean_env
вместо обратных шагов, чтобы выгрузить команду heroku
.
Пожалуйста, попробуйте следующее:
1. Open your gemfile
2. Specify rails version
3. Run bundle update
4. Run rails server - rails s
Время от времени это происходит со мной. Однако мне часто не нравится переключать рубиновые версии здесь и там. Поэтому вместо этого я просто перехожу в Gemfile и переключаю рубиновую версию на ту, которую я использую. Это позволяет мне запускать мой сервер и продолжать работать над вещами.
так, например, прямо сейчас для приложения, над которым я работаю, мой Gemfile находится в
ruby ENV["CUSTOM_RUBY_VERSION"] || "2.1.6"
и я просто изменил бы его на
ruby ENV["CUSTOM_RUBY_VERSION"] || "1.9.3"