当我想尝试或调试的时候,我运行 rails console并在那里做一些事情。通过使用 raise "blablabla"引发异常,我可以从代码中打印一些文本或变量。 问: 如何像简单的 logger.info "blah"那样不引发异常(并且明显破坏代码执行)而直接写入 轨道控制台?
rails console
raise "blablabla"
logger.info "blah"
puts 或 p是一个很好的开始。
puts
p
p "asd" # => "asd" puts "asd" # => asd
这里有更多关于这方面的信息: http://www.ruby-doc.org/core-1.9.3/ARGF.html
正如其他人所说,你想要使用 puts或 p。为什么? 这是魔术吗?
其实不是。Rails 控制台在底层是 IRB,所以你能在 IRB 中做的就是在 Rails 控制台中做。因为我们使用 puts来打印 IRB,所以我们使用相同的命令来打印 Rails 控制台。
您实际上可以查看 Rails 源代码中的控制台 密码。看到 IRB 的要求了吗?:)
除了已经建议的 p和 putsーー好吧,实际上在大多数情况下,你确实可以像你自己建议的那样编写 logger.info "blah"。它也可以在控制台中工作,而不仅仅是在服务器模式下。
但是,如果您想要的只是控制台调试,那么无论如何,puts和 p的编写时间要短得多。
我认为你应该使用 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