Rails控制台无法启动。

66

我正在我的应用程序根目录,当我输入

$ rails console

看起来有东西正在加载,但是什么也没有发生。

当我停止 ^C 时,我收到了这个 trace:

^C/home/jonatas/.rvm/gems/ruby-2.1.2/gems/spring-1.1.3/lib/spring/client/run.rb:54:in `gets': Interrupt
from /home/jonatas/.rvm/gems/ruby-2.1.2/gems/spring-1.1.3/lib/spring/client/run.rb:54:in `verify_server_version'
from /home/jonatas/.rvm/gems/ruby-2.1.2/gems/spring-1.1.3/lib/spring/client/run.rb:25:in `call'
from /home/jonatas/.rvm/gems/ruby-2.1.2/gems/spring-1.1.3/lib/spring/client/command.rb:7:in `call'
from /home/jonatas/.rvm/gems/ruby-2.1.2/gems/spring-1.1.3/lib/spring/client/rails.rb:23:in `call'
from /home/jonatas/.rvm/gems/ruby-2.1.2/gems/spring-1.1.3/lib/spring/client/command.rb:7:in `call'
from /home/jonatas/.rvm/gems/ruby-2.1.2/gems/spring-1.1.3/lib/spring/client.rb:26:in `run'
from /home/jonatas/.rvm/gems/ruby-2.1.2/gems/spring-1.1.3/bin/spring:48:in `<top (required)>'
from /home/jonatas/.rvm/gems/ruby-2.1.2/gems/spring-1.1.3/lib/spring/binstub.rb:11:in `load'
from /home/jonatas/.rvm/gems/ruby-2.1.2/gems/spring-1.1.3/lib/spring/binstub.rb:11:in `<top (required)>'
from /home/jonatas/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /home/jonatas/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /home/jonatas/Code/Ruby/jonatasteixeira/bin/spring:16:in `<top (required)>'
from bin/rails:3:in `load'
from bin/rails:3:in `<main>'

我不知道正在发生什么...


你最近更新过 Rails 版本吗?如果是这样,这个答案 可能会对你有所帮助。 - Cristiano Mendonça
没有,我没有这样做。当我尝试安装“gem debugger”时,它开始出现问题。 - JonatasTeixeira
7个回答

233

我可能回答有点晚,但是为了其他正在寻找答案的人... 这里是链接

基本上,输入这个命令

spring stop

据我所了解,问题出在spring gem上,它会检查服务器的版本,但是版本不匹配。

对于我的情况,问题出现在我往gemfile中添加了一些新的gems。

因此,一旦停止spring并输入任何其他rails命令,spring就会重新启动,一切都应该能够正常工作,至少直到出现同样的问题或开发人员修补问题为止。


这个对我也起作用了,我试图运行 rails runner,但它立即返回而没有输出或运行任何内容,然后我尝试 rails console,同样的事情发生了,但是 rails s 可以工作。然后我尝试了 spring stop,然后 rails console 又可以工作了! - NamNamNam
有一个答案建议注释掉 spring,但这并没有帮助。即使注释掉,我仍然需要运行 spring stop 才能让控制台工作。 - Jerome
两年半之后,在经过一天的查找谷歌之后,这个答案帮助了我。@on_a_railsroad。 - ali
现在是2018年7月,这个答案仍然有用!我正在使用Ruby 5.0.7和Spring 2.0.2。 - bjacquet
这真的让我抓狂了。感谢你的答案。 - vinibol12
这个答案只是修补了问题,但我不知道如何避免它再次发生?有人知道为什么在Spring中会出现这个问题吗?在我的情况下,每次运行rails runnerrails console时都会出现。 - Esteban CAES

11

我以前没有见过这种情况,但看起来可能是由于某些原因导致您的设置中Spring出现了问题?尝试进入您的并查找调用gem 'spring'的行,并将其注释掉。然后运行bundle install再重新尝试。

这不是一个完美的解决方案,但如果能让您的rails控制台今晚再次工作,那么希望它能在发现一个真正的解决方案之前对您有所帮助。


8

spring stop 命令解决了我的问题。


4

对于我来说,spring宝石导致了这个问题,运行spring stop解决了这个问题。


2

在Rails 5.2.1中,我可以通过以下方式再次运行rails console

  • bundle clean --force
  • bundle install --without development test

注意:我的RAILS_ENV变量已经设置为production


2

1

我在生产环境中遇到了同样的问题。在Gemfile中,spring宝石不在开发组中。在我纠正这个问题后,一切都正常工作了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接