当我键入大型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
并将其拆分到条件中的任意逗号上,然后当您在末尾按回车键时,它将执行。