3

Railsコンソールは文字出力を約880文字に制限しているようです。この制限を取り除くにはどうすればよいですか?

大きなオブジェクト、またはデータベースからのテキストフィールドを印刷すると、次のような出力が得られます。

=> #<User id: ....
system_password: ni

...簡潔にするために挿入されています。出力には多くのテキストが含まれています。)

出力が切り捨てられ/上限が設定され/制限されていることがわかります。そのため、「ni」の後には何も表示されません(「nil」の場合は少なくとも「l」である必要があります)。

これはとても迷惑です。大量のテキストを含むDB内の文字列/テキストフィールドを完全に検査することはできません。

どこかの設定に違いないと思いますが、見つからないようです。

この制限を解除して、すべてのテキスト出力を表示するにはどうすればよいですか?

4

3 に答える 3

3

Rails をうまくサポートし、ActiveRecord インスタンスの詳細を表示できるpryをお勧めします。

于 2012-03-22T14:59:33.657 に答える
1

irb や Rails コンソールが問題だとは思いません。これは、プレーンな irb またはrails c:のいずれからも切り捨てられません。

(1..100000).reduce(''){|a,i| a << i.to_s}

Rails コンソール出力はinspectメソッドから来ているので、切り捨てを行っているのはおそらく ActiveRecord です ( code here )。inspectカスタム出力が必要な場合は、 User モデルでメソッドをオーバーライドできるはずです。

于 2012-03-22T14:42:09.653 に答える