写入 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】:

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

其实不是。 Rails 控制台在底层是一个IRB,所以你可以在 IRB 中做的所有事情都可以在 rails 控制台中做。因为在 IRB 中打印我们使用puts,所以我们在 Rails 控制台中使用相同的命令进行打印。

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

【讨论】:

【参考方案3】:

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

但是,如果您只想进行控制台调试,那么putsp 写起来要短得多。

【讨论】:

【参考方案4】:

putsp 是一个很好的开始。

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

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

【讨论】:

以上是关于写入 Rails 控制台的主要内容,如果未能解决你的问题,请参考以下文章

在 rails 3 中设置记录器

将字符串写入文件以供下载 Ruby on Rails

Rails:如何使用 Rails 控制台列出数据库表/对象?

如何打开rails控制台以访问rails 6中的多个数据库?

如何在我的 Rails 控制台中查看 Rails 审计记录?

Rails 将 3.2.* 升级到 4 不在 Rails 控制台中显示所有用户属性