【问题标题】:rails console fails with `Switch to inspect mode` in windowsrails 控制台在 Windows 中因“切换到检查模式”而失败
【发布时间】:2014-05-10 07:40:29
【问题描述】:

我通过rails new foo创建了一个rails项目,然后cd foo,运行rails c

然后我收到这样的消息。

DL is deprecated, please use Fiddle
Loading development environment (Rails 4.0.2)
Switch to inspect mode.

就是这样。我不能使用 Rails 控制台。

你知道我做错了什么吗?

我正在使用 railsinstaller 和 ruby​​ 1.9.3 和 2.0.0,以及来自 Rubyinstaller 的 ruby 2.0.0p451 (2014-02-24) [i386-mingw32]。所有版本都失败并出现相同的错误。

简单的irb命令没有问题。

编辑

按照 Graeme 的建议,我将 rb-readline0.5.0 更新为 0.5.1。并卸载旧的。

$ gem list | grep rb-readline
rb-readline (0.5.1)

但消息保持不变。

【问题讨论】:

标签: ruby-on-rails ruby windows irb


【解决方案1】:

如果有人在使用 Docker 时遇到此错误,我得到它是因为我运行了 docker run rails 但需要 -it

> docker run rails
Switch to inspect mode. # fail
> docker run -it rails
irb(main):001:0> # yay

【讨论】:

  • 有没有办法用 docker-compose 做到这一点?
  • 这是一个别名,用于在正在运行的机器(包括您使用 docker-compose 启动的机器)上潜入 rails 控制台function dbrailsc { docker exec -it $(docker ps | grep app_name| awk '{print $1;}') bundle exec rails c; } (您必须将 app_name 替换为您的docker-compose.yml)
  • 运行docker exec container_name rails c而不是docker exec -it container_name rails c时也发生在我身上
  • 我现在多次遇到这个问题,对我来说,这是因为实际启动服务器的命令(foreman start)被我的docker-compose.yml注释掉了所以它不知道从什么开始。
【解决方案2】:

这是由 0.5.0 版中的 rb-readline gem 引起的已知问题。随后在几个月前发布的 0.5.1 中对其进行了修复。

因此,您应该将 rb-readline gem 升级到 v0.5.1 以解决此问题。

您可以在此处查看有关issueresolution 的更多详细信息。

【讨论】:

  • 感谢您的建议,但更新后我仍然有同样的错误。
  • 更新应该已修复 DL 已弃用警告,但未修复自动切换到检查模式。您的主目录中有 .irbrc 文件吗?
  • DL 已弃用警告仍然存在。而且我的主目录中没有.irbrc。我有这个文件,但我已经删除了,因为它导致了另一个rails console的错误。
  • 当时问题解决了一次,但现在我遇到了类似的问题。答案是否定的,我无法在控制台中输入命令。在消息之后,它返回到命令行。
  • 现在是 2015 年,在 Windows 10 上的 Rails 5.0 中出现同样的错误,Rails 控制台命令产生加载开发环境 (Rails 5.0.0.1) 切换到检查模式。无提示 全新安装。
猜你喜欢
  • 1970-01-01
  • 2017-02-23
  • 2014-09-12
  • 2014-02-14
  • 1970-01-01
  • 1970-01-01
  • 2016-01-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多