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

Ошибка сервера Rails: версия Ruby 1.8.7, но ваш Gemfile указан 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]

Поэтому я не знаю, как это исправить. Можете ли вы мне помочь?

4b9b3361

Ответ 1

Если вы используете rvm, запустите это:

$ rvm use 1.9.3

Ответ 2

попробуйте использовать bundler

bundle exec rails s

Ответ 3

У меня была аналогичная проблема:

$ 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. Также было открыть вопрос на . Однако я решил проблему следующим образом:

  • Получил путь к моему bundler:

    $ which bundle
    /home/malo/.rvm/gems/[email protected]/bin/bundle
    
  • Открыл его для редактирования (или просто 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
    

    Это должно забрать используемую в настоящее время рубиновую версию.

Ответ 4

Я выяснил причину, по которой я получал эту ошибку, в том, что я обманывал программу командной строки Heroku внутри моих файлов конфигурации, а Heroku Toolbelt поставляется с собственной версией Ruby.

Два решения этой проблемы: либо не выгружать в Heroku, либо использовать блок Bundler.with_clean_env вместо обратных шагов, чтобы выгрузить команду heroku.

Ответ 5

Пожалуйста, попробуйте следующее:

 1. Open your gemfile
 2. Specify rails version
 3. Run bundle update
 4. Run rails server - rails s

Ответ 6

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

так, например, прямо сейчас для приложения, над которым я работаю, мой Gemfile находится в

ruby ENV["CUSTOM_RUBY_VERSION"] || "2.1.6"

и я просто изменил бы его на

ruby ENV["CUSTOM_RUBY_VERSION"] || "1.9.3"