写入 Rails 控制台
Posted
技术标签:
【中文标题】写入 Rails 控制台【英文标题】:Write to rails console 【发布时间】:2013-02-04 09:10:32 【问题描述】:当我想尝试或调试某些东西时,我会运行 rails console
并在那里做一些事情。我可以通过使用raise "blablabla"
引发异常来从代码中打印一些文本或变量。
问题:我如何才能像简单的logger.info "blah"
一样写入 rails 控制台 而不会引发异常(以及明显的破坏代码执行)?
【问题讨论】:
放“废话”?这应该工作;] 【参考方案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
【讨论】:
【参考方案2】:正如其他人所说,您想使用puts
或p
。为什么?这是魔法吗?
其实不是。 Rails 控制台在底层是一个IRB,所以你可以在 IRB 中做的所有事情都可以在 rails 控制台中做。因为在 IRB 中打印我们使用puts
,所以我们在 Rails 控制台中使用相同的命令进行打印。
您实际上可以查看 rails 源代码中的控制台code。看到irb的要求了吗? :)
【讨论】:
【参考方案3】:除了已经建议的p
和puts
— 好吧,实际上在大多数情况下,您可以按照自己的建议编写logger.info "blah"
。它也可以在控制台中工作,而不仅仅是在服务器模式下。
但是,如果您只想进行控制台调试,那么puts
和p
写起来要短得多。
【讨论】:
【参考方案4】:puts
或 p
是一个很好的开始。
p "asd" # => "asd"
puts "asd" # => asd
这里有更多相关信息:http://www.ruby-doc.org/core-1.9.3/ARGF.html
【讨论】:
以上是关于写入 Rails 控制台的主要内容,如果未能解决你的问题,请参考以下文章
Rails:如何使用 Rails 控制台列出数据库表/对象?
如何打开rails控制台以访问rails 6中的多个数据库?