为什么RubyMine控制台无法启动?

3
我正在使用最新的RubyMine,版本为2020.1.1(Build #RM-201.7223.94),使用的Ruby版本是2.7和Rails版本是6.0.2.2。当我尝试启动Rails控制台时,会出现以下错误:
C:\Users\pupeno\scoop\apps\ruby\current\bin\ruby.exe "C:/Users/pupeno/Documents/Flexpoint Tech/projectx-be/bin/rails" console -- --simple-prompt --legacy
Loading development environment (Rails 6.0.3.1)
Switch to inspect mode.
C:/Users/pupeno/scoop/apps/ruby/2.7.1-1/lib/ruby/2.7.0/reline/line_editor.rb:211:in `div': divided by 0 (ZeroDivisionError)
    from C:/Users/pupeno/scoop/apps/ruby/2.7.1-1/lib/ruby/2.7.0/reline/line_editor.rb:211:in `calculate_height_by_width'
    from C:/Users/pupeno/scoop/apps/ruby/2.7.1-1/lib/ruby/2.7.0/reline/line_editor.rb:352:in `rerender'
    from C:/Users/pupeno/scoop/apps/ruby/2.7.1-1/lib/ruby/2.7.0/reline.rb:225:in `inner_readline'
    from C:/Users/pupeno/scoop/apps/ruby/2.7.1-1/lib/ruby/2.7.0/reline.rb:187:in `readline'
    from C:/Users/pupeno/scoop/apps/ruby/2.7.1-1/lib/ruby/2.7.0/forwardable.rb:235:in `readline'
    from C:/Users/pupeno/scoop/apps/ruby/2.7.1-1/lib/ruby/2.7.0/forwardable.rb:235:in `readline'
    from C:/Users/pupeno/scoop/apps/ruby/2.7.1-1/lib/ruby/2.7.0/irb/input-method.rb:161:in `gets'
    from C:/Users/pupeno/scoop/apps/ruby/2.7.1-1/lib/ruby/2.7.0/irb.rb:518:in `block (2 levels) in eval_input'
    from C:/Users/pupeno/scoop/apps/ruby/2.7.1-1/lib/ruby/2.7.0/irb.rb:695:in `signal_status'
    from C:/Users/pupeno/scoop/apps/ruby/2.7.1-1/lib/ruby/2.7.0/irb.rb:517:in `block in eval_input'
    from C:/Users/pupeno/scoop/apps/ruby/2.7.1-1/lib/ruby/2.7.0/irb/ruby-lex.rb:166:in `lex'
    from C:/Users/pupeno/scoop/apps/ruby/2.7.1-1/lib/ruby/2.7.0/irb/ruby-lex.rb:138:in `block (2 levels) in each_top_level_statement'
    from C:/Users/pupeno/scoop/apps/ruby/2.7.1-1/lib/ruby/2.7.0/irb/ruby-lex.rb:135:in `loop'
    from C:/Users/pupeno/scoop/apps/ruby/2.7.1-1/lib/ruby/2.7.0/irb/ruby-lex.rb:135:in `block in each_top_level_statement'
    from C:/Users/pupeno/scoop/apps/ruby/2.7.1-1/lib/ruby/2.7.0/irb/ruby-lex.rb:134:in `catch'
    from C:/Users/pupeno/scoop/apps/ruby/2.7.1-1/lib/ruby/2.7.0/irb/ruby-lex.rb:134:in `each_top_level_statement'
    from C:/Users/pupeno/scoop/apps/ruby/2.7.1-1/lib/ruby/2.7.0/irb.rb:536:in `eval_input'
    from C:/Users/pupeno/scoop/apps/ruby/2.7.1-1/lib/ruby/2.7.0/irb.rb:471:in `block in run'
    from C:/Users/pupeno/scoop/apps/ruby/2.7.1-1/lib/ruby/2.7.0/irb.rb:470:in `catch'
    from C:/Users/pupeno/scoop/apps/ruby/2.7.1-1/lib/ruby/2.7.0/irb.rb:470:in `run'
    from C:/Users/pupeno/scoop/apps/ruby/2.7.1-1/lib/ruby/2.7.0/irb.rb:399:in `start'
    from C:/Users/pupeno/scoop/persist/ruby/gems/gems/railties-6.0.3.1/lib/rails/commands/console/console_command.rb:70:in `start'
    from C:/Users/pupeno/scoop/persist/ruby/gems/gems/railties-6.0.3.1/lib/rails/commands/console/console_command.rb:19:in `start'
    from C:/Users/pupeno/scoop/persist/ruby/gems/gems/railties-6.0.3.1/lib/rails/commands/console/console_command.rb:102:in `perform'
    from C:/Users/pupeno/scoop/persist/ruby/gems/gems/thor-1.0.1/lib/thor/command.rb:27:in `run'
    from C:/Users/pupeno/scoop/persist/ruby/gems/gems/thor-1.0.1/lib/thor/invocation.rb:127:in `invoke_command'
    from C:/Users/pupeno/scoop/persist/ruby/gems/gems/thor-1.0.1/lib/thor.rb:392:in `dispatch'
    from C:/Users/pupeno/scoop/persist/ruby/gems/gems/railties-6.0.3.1/lib/rails/command/base.rb:69:in `perform'
    from C:/Users/pupeno/scoop/persist/ruby/gems/gems/railties-6.0.3.1/lib/rails/command.rb:46:in `invoke'
    from C:/Users/pupeno/scoop/persist/ruby/gems/gems/railties-6.0.3.1/lib/rails/commands.rb:18:in `<top (required)>'
    from C:/Users/pupeno/Documents/Flexpoint Tech/projectx-be/bin/rails:4:in `require'
    from C:/Users/pupeno/Documents/Flexpoint Tech/projectx-be/bin/rails:4:in `<main>'Process finished with exit code 1

当我尝试运行普通的IRB时:
C:\Users\pupeno\scoop\apps\ruby\current\bin\ruby.exe "C:/Program Files/JetBrains/RubyMine 2020.1.1/plugins/ruby/rb/testing/runner/irb.rb" --simple-prompt --legacy
Switch to inspect mode.
C:/Users/pupeno/scoop/persist/ruby/gems/gems/reline-0.1.4/lib/reline/line_editor.rb:211:in `div': divided by 0 (ZeroDivisionError)
    from C:/Users/pupeno/scoop/persist/ruby/gems/gems/reline-0.1.4/lib/reline/line_editor.rb:211:in `calculate_height_by_width'
    from C:/Users/pupeno/scoop/persist/ruby/gems/gems/reline-0.1.4/lib/reline/line_editor.rb:352:in `rerender'
    from C:/Users/pupeno/scoop/persist/ruby/gems/gems/reline-0.1.4/lib/reline.rb:225:in `inner_readline'
    from C:/Users/pupeno/scoop/persist/ruby/gems/gems/reline-0.1.4/lib/reline.rb:187:in `readline'
    from C:/Users/pupeno/scoop/apps/ruby/2.7.1-1/lib/ruby/2.7.0/forwardable.rb:235:in `readline'
    from C:/Users/pupeno/scoop/apps/ruby/2.7.1-1/lib/ruby/2.7.0/forwardable.rb:235:in `readline'
    from C:/Users/pupeno/scoop/persist/ruby/gems/gems/irb-1.2.3/lib/irb/input-method.rb:161:in `gets'
    from C:/Users/pupeno/scoop/persist/ruby/gems/gems/irb-1.2.3/lib/irb.rb:518:in `block (2 levels) in eval_input'
    from C:/Users/pupeno/scoop/persist/ruby/gems/gems/irb-1.2.3/lib/irb.rb:694:in `signal_status'
    from C:/Users/pupeno/scoop/persist/ruby/gems/gems/irb-1.2.3/lib/irb.rb:517:in `block in eval_input'
    from C:/Users/pupeno/scoop/persist/ruby/gems/gems/irb-1.2.3/lib/irb/ruby-lex.rb:166:in `lex'
    from C:/Users/pupeno/scoop/persist/ruby/gems/gems/irb-1.2.3/lib/irb/ruby-lex.rb:138:in `block (2 levels) in each_top_level_statement'
    from C:/Users/pupeno/scoop/persist/ruby/gems/gems/irb-1.2.3/lib/irb/ruby-lex.rb:135:in `loop'
    from C:/Users/pupeno/scoop/persist/ruby/gems/gems/irb-1.2.3/lib/irb/ruby-lex.rb:135:in `block in each_top_level_statement'
    from C:/Users/pupeno/scoop/persist/ruby/gems/gems/irb-1.2.3/lib/irb/ruby-lex.rb:134:in `catch'
    from C:/Users/pupeno/scoop/persist/ruby/gems/gems/irb-1.2.3/lib/irb/ruby-lex.rb:134:in `each_top_level_statement'
    from C:/Users/pupeno/scoop/persist/ruby/gems/gems/irb-1.2.3/lib/irb.rb:536:in `eval_input'
    from C:/Users/pupeno/scoop/persist/ruby/gems/gems/irb-1.2.3/lib/irb.rb:471:in `block in run'
    from C:/Users/pupeno/scoop/persist/ruby/gems/gems/irb-1.2.3/lib/irb.rb:470:in `catch'
    from C:/Users/pupeno/scoop/persist/ruby/gems/gems/irb-1.2.3/lib/irb.rb:470:in `run'
    from C:/Users/pupeno/scoop/persist/ruby/gems/gems/irb-1.2.3/lib/irb.rb:399:in `start'
    from C:/Program Files/JetBrains/RubyMine 2020.1.1/plugins/ruby/rb/testing/runner/irb.rb:3:in `<main>'
▽
Process finished with exit code 1

在RubyMine中从终端(使用PowerShell)运行它们之一是有效的。

有什么想法出了问题吗?

如果我尝试运行RubyMine在运行Rails控制台时运行的相同命令,它就可以正常工作:

Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.

Try the new cross-platform PowerShell https://aka.ms/pscore6

PS C:\Users\pupeno\Documents\Flexpoint Tech\projectx-be> C:\Users\pupeno\scoop\apps\ruby\current\bin\ruby.exe "C:/Users/pupeno/Documents/Flexpoint Tech/projectx-be/bin/rails" console -- --simple-prompt --legacy
Loading development environment (Rails 6.0.3.1)
>>

与独立的 PowerShell 控制台相同:

PS C:\Users\pupeno\Documents\Flexpoint Tech\projectx-be> C:\Users\pupeno\scoop\apps\ruby\current\bin\ruby.exe "C:/Users/pupeno/Documents/Flexpoint Tech/projectx-be/bin/rails" console -- --simple-prompt --legacy

Loading development environment (Rails 6.0.3.1)
>>

甚至包括cmd.exe

Microsoft Windows [Version 10.0.18363.836]
(c) 2019 Microsoft Corporation. All rights reserved.

C:\Users\pupeno>cd "Documents\Flexpoint Tech\projectx-be"

C:\Users\pupeno\Documents\Flexpoint Tech\projectx-be>C:\Users\pupeno\scoop\apps\ruby\current\bin\ruby.exe "C:/Users/pupeno/Documents/Flexpoint Tech/projectx-be/bin/rails" console -- --simple-prompt --legacy
Loading development environment (Rails 6.0.3.1)
>>                                                                                                                                                                                                                                                                           

除了您在Windows上使用正斜杠作为目录分隔符的事实之外,还有什么问题吗? - max
@Olivia 我是通过更新安装了2020.1版本的。 - pupeno
@max:我并没有“做”任何事情,这是由Ruby自动发生的。 - pupeno
@pupeno,通过补丁更新,是否可以将IDE重新安装到另一个文件夹中? - Olivia
@Olivia 我已经完全卸载了RubyMine,删除了缓存和其他目录,并安装了最新版本。我还将Rails更新到了最新版本。但是仍然出现相同的错误 :( - pupeno
显示剩余2条评论
2个回答

2

我还不确定这是解决方案还是权宜之计。在RubyMine中运行Rails控制台时,它会创建一个运行配置文件,将以下参数添加到运行控制台的命令中:console -- --simple-prompt --legacy。移除--legacy似乎可以解决问题。


请问您是否使用多行输入?是否有明确要求使用 reline - Olivia

1
我正在使用2020.2版本,在Rails 6项目中遇到了这个问题,无论是在Rails控制台还是IRB控制台中都有。

从运行定义中移除自动包含的--single-line选项可以解决我的错误。


我已经尝试了你的解决方案,它有效。但是,每次启动IRB时我都必须手动删除该选项。有没有办法保存配置,以便不再自动包含“--single-line”选项? - Mc Cheng
似乎没有这个选项。在运行配置模板中没有包含该选项,这表明它的包含是硬编码在某个地方的。除了向JetBrains开启支持案例外,这里可能没有太多可做的了。@McCheng - Mikey T.K.

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