Techioz Blog

Rails - コンソール出力をファイルにリダイレクトする

概要

bash コンソールでこれを実行すると、次のようになります。

cd mydir
ls -l > mydir.txt

演算子は標準入力を取得し、それをファイルにリダイレクトします。そのため、標準出力ではなく mydir.txt でファイルのリストを取得します。

Railsコンソールで同様のことを行う方法はありますか?

大量の出力 (約 8k 行) を生成する Ruby ステートメントがあり、それを完全に表示できるようにしたいのですが、コンソールは最後の 1024 行程度しか「記憶」しません。そこで、ファイルにリダイレクトすることを考えました。誰かがより良いオプションを知っているなら、私はすべての耳を傾けます。

解決策

簡単な 1 回限りのソリューション:

irb:001> f = File.new('statements.xml', 'w')
irb:002> f << Account.find(1).statements.to_xml
irb:003> f.close

JSON フィクスチャを作成します。

irb:004> f = File.new(Rails.root + 'spec/fixtures/qbo/amy_cust.json', 'w')
irb:005> f << JSON.pretty_generate((q.get :customer, 1).as_json)
irb:006> f.close