写入rails控制台

时间:2013-02-19 15:55:57

标签: ruby-on-rails ruby debugging development-environment rails-console

当我想尝试或调试smthing时,我运行rails console并在那里做一些事情。我可以通过raise "blablabla"引发异常来打印代码中的一些文本或变量。 问题:如何在没有异常引发的情况下写入 rails console (并且明显破坏代码执行),就像一个简单的logger.info "blah"一样?

4 个答案:

答案 0 :(得分:75)

正如其他人所说,您想要使用putsp。为什么?那是魔术吗?

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

您实际上可以查看rails源代码中的控制台code。看到irb的要求? :)

答案 1 :(得分:33)

putsp是一个良好的开端。

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

此处有关于此的更多信息:http://www.ruby-doc.org/core-1.9.3/ARGF.html

答案 2 :(得分:8)

除了已经建议的pputs之外,实际上在大多数情况下,您可以按照自己的建议编写logger.info "blah"。它也适用于控制台,不仅仅是在服务器模式下。

但是,如果你想要的只是控制台调试,那么putsp的写入要短得多。

答案 3 :(得分:1)

我认为您应该使用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