写入rails控制台

fre*_*oid 52 ruby debugging development-environment ruby-on-rails rails-console

当我想尝试或调试smthing我跑,rails console并在那里做一些东西.我可以通过引发异常来从代码中打印一些文本或变量raise "blablabla". 问题:我如何只是简单地写入rails控制台而不会异常引发(并且明显破坏代码执行)logger.info "blah"

Nob*_*ita 78

正如其他人所说,你想要使用puts或者p.为什么?那太神奇了吗?

其实并不是.导轨控制台在引擎盖下是一个IRB,因此您可以在IRB中完成所有操作,您可以在导轨控制台中完成.由于在我们使用的IRB中进行打印puts,因此我们使用相同的命令在rails控制台中进行打印.

实际上,你可以看看控制台代码中轨的源代码.看到irb的要求?:)


Ser*_*usM 36

puts或者p是一个良好的开端.

p "asd"       # => "asd"
puts "asd"    # => asd
Run Code Online (Sandbox Code Playgroud)

这里有更多相关信息:http://www.ruby-doc.org/core-1.9.3/ARGF.html


NIA*_*NIA 8

除了已经提出pputs-当然,实际上在你可以写大多数情况下,logger.info "blah"就像你建议你自己.它也适用于控制台,不仅在服务器模式下.

但是,如果你想要的只是控制台调试,puts而且p要写得更短.


mat*_*sca 7

我认为您应该使用 Rails 调试选项:

logger.debug "Person attributes hash: #{@person.attributes.inspect}"
logger.info "Processing the request..."
logger.fatal "Terminating application, raised unrecoverable error!!!"
Run Code Online (Sandbox Code Playgroud)

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