使用轨道控制台(终端)时线路中断



当我键入大型ActiveRecord查询时,在完成查询之前,行已经断开,我甚至无法正确读取或键入命令。我正在使用ubuntu。有什么解决方案吗?

最终将问题缩小到调整终端大小。通常,我会最大限度地使用终端来键入大型命令,因此出现了问题。发现这可以通过处理SIGWINCH信号来调整IRB的大小来解决。在下面的解决方案中,我还调整了Hirb的大小。

将以下行添加到~/.irbrc(如果不存在,则创建一行):

Signal.trap('SIGWINCH', proc { y, x = `stty size`.split.map(&:to_i); Hirb::View.resize(x, y) if defined? Hirb } )

一种更通用的方法是在行的末尾使用

使用"Kenny Grant"的相同示例

ruby> User.very.long.chain.of.arel.commands. 
      where('thing = ?', 4).very.long.chain.of.arel.commands

最后一行不应具有任何结束CCD_ 2,然后将执行整个命令。

我注意到irb也有同样的错误,rails控制台默认使用irb。这就是我使用撬杆的原因,看看这里如何设置带导轨的撬杆。

如果您的查询是这样的:

rails c
ruby> User.very.long.chain.of.arel.commands.where('thing = ?',4).very.long.chain.of.arel.commands

你应该能够做到这一点:

ruby> User.very.long.chain.of.arel.commands.where('thing = ?',
          4).very.long.chain.of.arel.commands

并将其拆分到条件中的任意逗号上,然后当您在末尾按回车键时,它将执行。

最新更新