使用 Pry 调试时如何跳过内部 Rails 实现?

How to skip inner Rails realisation when debugging with Pry?

当我们调试不同类之间的行为时,有时Pry潜入Rails类内部(如action_controller/metal/implicit_render.rbactive_support/callbacks.rb)或实现其他插件(例如 New Relic)。

跳过此代码并仅通过您的应用程序代码进行调试的最佳方法是什么?

PS: 如果这个问题不够清楚,请帮我给这个问题起一个合适的标题。

我假设您正在使用 pry-byebugdebugger 单步执行代码,因为 pry 本身不提供单步执行。

您可以使用逐行执行的 step 和 "steps into" 方法调用(看起来您可能正在这样做)。或者您可以使用 next which "steps over" 方法调用,这样您就不会陷入太深。

但是你无法避免进入框架和你的 gem,如果它们在执行路径中,你最终会到达那里。使用 next 跳过您不想进入的方法调用。