Rails возвращает ошибку, когда я пытаюсь создать новый проект

Rails сломался в моей системе, и теперь всякий раз, когда я запускаю rails new my_app, он выдает странную ошибку Thor.

joshuahadik -> rails new hello_world
Traceback (most recent call last):
    21: from /Users/joshuahadik/.rvm/gems/ruby-2.5.3/bin/ruby_executable_hooks:24:in `<main>'
    20: from /Users/joshuahadik/.rvm/gems/ruby-2.5.3/bin/ruby_executable_hooks:24:in `eval'
    19: from /Users/joshuahadik/.rvm/gems/ruby-2.5.3/bin/rails:23:in `<main>'
    18: from /Users/joshuahadik/.rvm/gems/ruby-2.5.3/bin/rails:23:in `load'
    17: from /Users/joshuahadik/.rvm/gems/ruby-2.5.3/gems/railties-5.2.1/exe/rails:10:in `<top (required)>'
    16: from /Users/joshuahadik/.rvm/rubies/ruby-2.5.3/lib/ruby/site_ruby/2.5.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    15: from /Users/joshuahadik/.rvm/rubies/ruby-2.5.3/lib/ruby/site_ruby/2.5.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    14: from /Users/joshuahadik/.rvm/gems/ruby-2.5.3/gems/railties-5.2.1/lib/rails/cli.rb:12:in `<top (required)>'
    13: from /Users/joshuahadik/.rvm/rubies/ruby-2.5.3/lib/ruby/site_ruby/2.5.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    12: from /Users/joshuahadik/.rvm/rubies/ruby-2.5.3/lib/ruby/site_ruby/2.5.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    11: from /Users/joshuahadik/.rvm/gems/ruby-2.5.3/gems/railties-5.2.1/lib/rails/command.rb:9:in `<top (required)>'
    10: from /Users/joshuahadik/.rvm/rubies/ruby-2.5.3/lib/ruby/site_ruby/2.5.0/rubygems/core_ext/kernel_require.rb:54:in `require'
     9: from /Users/joshuahadik/.rvm/rubies/ruby-2.5.3/lib/ruby/site_ruby/2.5.0/rubygems/core_ext/kernel_require.rb:54:in `require'
     8: from /Users/joshuahadik/.rvm/gems/ruby-2.5.3/gems/thor-0.20.1/lib/thor.rb:2:in `<top (required)>'
     7: from /Users/joshuahadik/.rvm/rubies/ruby-2.5.3/lib/ruby/site_ruby/2.5.0/rubygems/core_ext/kernel_require.rb:54:in `require'
     6: from /Users/joshuahadik/.rvm/rubies/ruby-2.5.3/lib/ruby/site_ruby/2.5.0/rubygems/core_ext/kernel_require.rb:54:in `require'
     5: from /Users/joshuahadik/.rvm/gems/ruby-2.5.3/gems/thor-0.20.1/lib/thor/base.rb:4:in `<top (required)>'
     4: from /Users/joshuahadik/.rvm/rubies/ruby-2.5.3/lib/ruby/site_ruby/2.5.0/rubygems/core_ext/kernel_require.rb:54:in `require'
     3: from /Users/joshuahadik/.rvm/rubies/ruby-2.5.3/lib/ruby/site_ruby/2.5.0/rubygems/core_ext/kernel_require.rb:54:in `require'
     2: from /Users/joshuahadik/.rvm/gems/ruby-2.5.3/gems/thor-0.20.1/lib/thor/error.rb:1:in `<top (required)>'
     1: from /Users/joshuahadik/.rvm/gems/ruby-2.5.3/gems/thor-0.20.1/lib/thor/error.rb:6:in `<class:Thor>'
/Users/joshuahadik/.rvm/gems/ruby-2.5.3/gems/thor-0.20.1/lib/thor/error.rb:12:in `<module:DidYouMean>': uninitialized constant Thor::DidYouMean::SpellChecker (NameError)

Я получаю ту же ошибку, когда запускаю практически любую команду rails, rails -v, rails s и т. д.

До сих пор я пробовал несколько вещей, включая полное удаление каждой версии ruby ​​​​с помощью rvm, затем их переустановку, а затем переустановку драгоценного камня rails. Не работает.

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

ОБНОВИТЬ

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


person Josh Hadik    schedule 10.11.2018    source источник
comment
Какие версии ruby, rails и bundler вы используете? Я только что создал новый проект, используя 2.4.1 (ruby), 5.2.1 (rails), 1.16.1 (bundler) без происшествий.   -  person David    schedule 10.11.2018
comment
увидел еще одну такую ​​ошибку. заметил, что гем Тора обновлен сегодня ... может быть, заблокировать его до последней версии   -  person engineerDave    schedule 10.11.2018


Ответы (4)


Thor — это гем, который используется Rails для отображения различных сообщений командной строки.

Он говорит, что вы используете thor-0.20.1

Я считаю, что версия Тора была выпущена СЕГОДНЯ. Предыдущая версия, Thor-0.20.0, была выпущена более года назад. Я также использую версию 0.20.0.

Вероятно, это ошибка в thor-0.20.1.

Вы можете попробовать использовать пакет и ваш Gemfile, чтобы заставить ваше приложение использовать thor-0.20.0.

person Kevin    schedule 10.11.2018

Я столкнулся с той же проблемой, и рельсы не принимали никаких команд (rails s, rails new app) и т. д. Используя ruby ​​2.5.3 и rails 5.2.1. Это из-за глючного тор-0.20.1

Поэтому вернул его обратно к thor-0.20.0: - gem uninstall thor (но не удаляйте исполняемые файлы по запросу)

Это позволит вам создать новый проект, однако имейте в виду, что файл Gemfile.lock автоматически меняет версию на thor-0.20.1 (не знаю почему). Поэтому не забудьте снова изменить его на 0.20.0.

person Das    schedule 10.11.2018

Вышла новая версия Тора. Просто беги:

gem update thor
person peteretep    schedule 11.11.2018

Решение для меня - удалить версию gem Thor:

$ gem удалить тор

Выберите gem для удаления: 1. thor-0.20.0 2. thor-0.20.1 3. Все версии

2 Успешно удален тор-0.20.1

person Yony Arley Briñez Valderrama    schedule 10.11.2018