当我输入大型ActiveRecord查询时,在完成查询之前,该行正在崩溃,我甚至无法正确阅读或输入命令。我正在使用ubuntu.Any解决方案?
答案 0 :(得分:8)
最后缩小了调整终端大小的问题。通常我最大化终端输入大命令,因此问题。 发现这可以通过处理SIGWINCH信号来调整IRB的大小来解决。在下面的解决方案中,我也调整了Hirb的大小。
将以下行添加到〜/ .irbrc(如果不存在则创建一个):
Signal.trap('SIGWINCH', proc { y, x = `stty size`.split.map(&:to_i); Hirb::View.resize(x, y) if defined? Hirb } )
答案 1 :(得分:3)
更通用的方法是在行尾使用\
。
使用“Kenny Grant”的相同例子
ruby> User.very.long.chain.of.arel.commands. \
where('thing = ?', 4).very.long.chain.of.arel.commands
最后一行不应该有任何结尾\
,然后将执行整个命令。
答案 2 :(得分:1)
我注意到与irb相同的错误,rails控制台默认使用irb。 这就是我使用pry的原因,看看here如何使用rails设置pry。
答案 3 :(得分:0)
如果您的查询是这样的:
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
并将其拆分为条件中的任何逗号,然后当您按结束时返回它将执行。