在Rails中使用byebug入门

4

我正在从Django转向Rails。目前我只是创建了一个新的Rails应用程序,并在Gemfile中发现了这一行:

  # Call 'debugger' anywhere in the code to stop execution and get a
  # debugger console
  gem 'byebug'

这个应该怎么工作?它是否像评论中说的那样简单明了?我可以在代码中的某个地方放置debugger,然后在浏览器中获取一个调试控制台吗?

2个回答

6

启动Rails服务器

rails s

并监视日志。

enter image description here

现在试着访问指向代码中写有debugger的地方的页面。 日志将停留在您放置debugger/byebug单词的位置。

enter image description here 您可以在那个瞬间打印出变量。

更新Rails 4

根据Deivid的建议,我在此引用他的话

取消--debug标志。 在Rails 4中不需要做任何特殊处理来使byebug工作。 只需调用require 'byebug'和byebug即可。


请注意,在Rails 4中,“--debug”标志已被弃用且无效。只有在调用“byebug”方法时才会启动Byebug。 - deivid
@deivid 感谢你的提醒,我想更新命令,但在这里 https://github.com/deivid-rodriguez/byebug 找不到任何关于 Rails 4 的特定信息 :) - aelor
@aelor 只需删除 --debug 标志即可。在 Rails 4 中,您无需执行任何特殊操作即可使 byebug 正常工作。只需 require 'byebug' 并调用 byebug 即可。 - deivid
当你说“打印变量”时,你是指使用显示命令吗? - atw
1
@AdrianMann 我知道我来晚了,但让我回答这个问题。你可以使用 puts <变量名> 来打印出变量。 - aelor

2
你在浏览器中是无法使用调试器的 - 调用 debugger 或者 byebug 会将你带入到 byebug 提示符所在的终端窗口,而这个终端窗口是用来运行你的 rails 服务器的(请注意这并不同于 rails 控制台,可以在 rails 调试指南 中了解其概述)。
另一个你可能感兴趣的工具是 web-console gem(从 rails 4.2 开始默认包含)。这样做可以在控制器、视图等地方调用 console,然后将你转移到基于浏览器的 IRB 会话中。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接