6

大きなActiveRecordクエリを入力すると、クエリを終了する前に行が途切れ、コマンドを正しく読み取ったり入力したりすることさえできません。ubuntuを使用しています。解決策はありますか?

4

4 に答える 4

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 } )
于 2012-08-24T11:11:54.357 に答える
3

より一般的な方法は\、行の最後にを使用することです。

「ケニー・グラント」の同じ例を使用して

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

最後の行に終わりがないようにしてください\。そうすると、コマンド全体が実行されます。

于 2012-08-24T08:12:49.773 に答える
1

irbにも同じバグがあることに気づきました。Railsコンソールはデフォルトでirbを使用します。だから私はこじ開けを使っています。レールでこじ開けをセットアップする方法をここで見てください。

于 2012-08-24T08:13:10.100 に答える
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

条件内の任意のコンマで分割し、最後にReturnキーを押すと実行されます。

于 2012-08-24T08:05:11.997 に答える