70

当我想尝试或调试一些东西时,我会在那里运行rails console并做一些事情。我可以通过引发异常来从代码中打印一些文本或变量raise "blablabla"问题:我怎样才能像简单的那样写到rails 控制台而不会引发异常(以及明显的破坏代码执行)logger.info "blah"

4

4 回答 4

97

正如其他人所说,您想使用putsor p。为什么?那是魔法吗?

其实并不是。rails 控制台本质上是一个IRB,因此您可以在 IRB 中执行的所有操作都可以在 rails 控制台中执行。因为在 IRB 中打印我们使用puts,所以我们使用相同的命令在 rails 控制台中打印。

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

于 2013-02-19T16:25:45.897 回答
49

puts或者p是一个好的开始。

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

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

于 2013-02-19T16:10:38.627 回答
10

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

于 2018-12-07T03:26:38.550 回答
8

除了已经建议的pputs——好吧,实际上在大多数情况下,你确实可以logger.info "blah"按照你自己的建议来写。它也可以在控制台中工作,而不仅仅是在服务器模式下。

但是,如果你想要的只是控制台调试,puts而且p写起来要短得多,无论如何。

于 2013-02-19T16:47:42.563 回答