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

Консоль Ruby on Rails зависает при загрузке

По какой-то причине консоль Ruby on Rails отказывается запускаться; это просто висит. Я не внес никаких изменений в свой код, и другие проекты, использующие одну и ту же версию Ruby и Ruby on Rails, не имеют проблем. Когда я, наконец, Ctrl + C я получаю эту трассировку стека, которая указывает на Spring.

Я не могу объяснить, почему это происходит от одного момента к другому, где он работал нормально. Я очистил все драгоценные камни через RVM и переустановил все через команду bundle, но все равно не повезло. Любые идеи будут оценены.

Также, насколько я могу судить, сервер Ruby on Rails не имеет проблем. Проблема связана с проектом, однако ни один код не изменился, и проблема возникает только в консоли Ruby on Rails.

Ruby 2.1.2
Rails 4.1.4

[email protected]:~/work/app_a$ rails console
^C/home/user_a/.rvm/gems/ruby-2.1.2/gems/spring-1.1.3/lib/spring/client/run.rb:54:in 'gets': Interrupt
    from /home/user_a/.rvm/gems/ruby-2.1.2/gems/spring-1.1.3/lib/spring/client/run.rb:54:in 'verify_server_version'
    from /home/user_a/.rvm/gems/ruby-2.1.2/gems/spring-1.1.3/lib/spring/client/run.rb:25:in 'call'
    from /home/user_a/.rvm/gems/ruby-2.1.2/gems/spring-1.1.3/lib/spring/client/command.rb:7:in 'call'
    from /home/user_a/.rvm/gems/ruby-2.1.2/gems/spring-1.1.3/lib/spring/client/rails.rb:23:in 'call'
    from /home/user_a/.rvm/gems/ruby-2.1.2/gems/spring-1.1.3/lib/spring/client/command.rb:7:in 'call'
    from /home/user_a/.rvm/gems/ruby-2.1.2/gems/spring-1.1.3/lib/spring/client.rb:26:in 'run'
    from /home/user_a/.rvm/gems/ruby-2.1.2/gems/spring-1.1.3/bin/spring:48:in '<top (required)>'
    from /home/user_a/.rvm/gems/ruby-2.1.2/gems/spring-1.1.3/lib/spring/binstub.rb:11:in 'load'
    from /home/user_a/.rvm/gems/ruby-2.1.2/gems/spring-1.1.3/lib/spring/binstub.rb:11:in '<top (required)>'
    from /home/user_a/work/app_a/bin/spring:16:in 'require'
    from /home/user_a/work/app_a/bin/spring:16:in '<top (required)>'
    from bin/rails:3:in 'load'
    from bin/rails:3:in '<main>'

[email protected]:~/work/app_a$
4b9b3361

Ответ 1

Перезапуск Spring должен исправить зависание команды:

$ bin/spring stop

После удаления и повторного создания нового приложения Ruby on Rails у меня возникли зависшие команды (rake, bin/rails и т.д.). Google не был таким полезным. Я надеюсь, что это так.

Spring начнется автоматически при повторном запуске команды.

Ответ 2

Думаю, что-то не так с версией Spring Gem.

Зайдите в свой Gemfile и прокомментируйте самоцвет 'spring'. Затем запустите bundle install и попробуйте снова.

# gem 'spring'

А потом:

bundle install

Если ваша работа зависит от драгоценного камня, попробуйте обновить драгоценные камни:

bundle update

Ответ 3

Если $ bin/spring stop не решит проблему, убедитесь, что процесс Spring, оставшийся без внимания, все еще не завершен:

$ ps aux | grep -i spring

Если вы видите что-то вроде

user  7163  0.0  0.0 110356  2165 pts/3    S+   19:40   0:00 grep --color=auto -i spring
user 16980  0.0  0.4 398826 17580 ?        Sl   Aug31   0:00 spring server | current | started 277 hours ago     

затем прервите процесс ошибочной пружины и попробуйте снова запустить консоль:

$ kill -9 16980 
$ rails c

Ответ 4

Когда есть подозрение, что Spring является причиной странностей, попробуйте выполнить следующую команду:

spring stop && spring start