web-dev-qa-db-ja.com

Railsコンソールへの書き込み

Smthingを試したりデバッグしたいときは、Rails consoleを実行し、そこで何かをします。 raise "blablabla"で例外を発生させることにより、コードからテキストまたは変数を出力できます。 質問:どうすれば書くことができますかRails console単純なlogger.info "blah"のように例外を発生させずに(そして明らかにコードの実行を中断します)?

52
freemanoid

他の人が言ったように、putsまたはpのいずれかを使用します。どうして?その魔法ですか?

実際はそうではありません。 Railsコンソールはボンネットの下にある IRB なので、IRBでできることはRailsコンソールでできることです。 。 IRBでの印刷にはputsを使用するため、Railsコンソールでの印刷にも同じコマンドを使用します。

実際にコンソールを見ることができます code Railsソースコードで。 irbの必要性をご覧ください。 :)

77
Nobita

puts または p は、そのための良いスタートです。

p "asd"       # => "asd"
puts "asd"    # => asd

詳細は次のとおりです。 http://www.Ruby-doc.org/core-1.9.3/ARGF.html

36
SeriousM

すでに提案されているpおよびputsに加えて、実際には、ほとんどの場合、あなたが提案したとおりにlogger.info "blah"を書くことができます。サーバーモードだけでなく、コンソールでも機能します。

ただし、コンソールデバッグだけが必要な場合は、putspを使用すると、とにかく書くのがはるかに短くなります。

8
NIA

Railsデバッグオプションを使用する必要があると思います。

logger.debug "Person attributes hash: #{@person.attributes.inspect}"
logger.info "Processing the request..."
logger.fatal "Terminating application, raised unrecoverable error!!!"

https://guides.rubyonrails.org/debugging_Rails_applications.html

1
matiasmasca