Ruby Debug:Skip Rails Code

时间:2012-03-28 17:50:16

标签: ruby-on-rails ruby debugging skip

当单步执行Rails中的Ruby Debugger时,我如何只停留在我编写的代码中,跳过所有本机Rails代码?

(即跳过所有看起来像这样的代码)

/Users/jon/.rvm/gems/ruby-1.9.3-p0/gems/activesupport-3.2.1/lib/active_support/core_ext/module/remove_method.rb:4
remove_method(method)
(rdb:1) s
[76, 85] in /Users/jon/.rvm/gems/ruby-1.9.3-p0/gems/activesupport-3.2.1/lib/active_support/core_ext/class/attribute.rb
   76          def self.#{name}?() !!#{name} end
   77  
   78          def self.#{name}=(val)
   79            singleton_class.class_eval do
   80              remove_possible_method(:#{name})
=> 81              define_method(:#{name}) { val }
   82            end
   83  
   84            if singleton_class?
   85              class_eval do
/Users/jon/.rvm/gems/ruby-1.9.3-p0/gems/activesupport-3.2.1/lib/active_support/core_ext/class/attribute.rb:81
define_method(:#{name}) { val }
(rdb:1) s
[79, 88] in /Users/jon/.rvm/gems/ruby-1.9.3-p0/gems/activesupport-3.2.1/lib/active_support/core_ext/class/attribute.rb
   79            singleton_class.class_eval do
   80              remove_possible_method(:#{name})
   81              define_method(:#{name}) { val }
   82            end
   83  
=> 84            if singleton_class?
   85              class_eval do
   86                remove_possible_method(:#{name})
   87                def #{name}
   88                  defined?(@#{name}) ? @#{name} : singleton_class.#{name}

谢谢!

3 个答案:

答案 0 :(得分:1)

如果我理解你的问题,我认为你所寻找的是this。 你会想要跨步而不是步入,如果你使用rails的方法你不会进入rails代码。我希望这会有所帮助并祝你好运。

答案 1 :(得分:1)

如果你偶尔介入一些Rails代码,只需在控制台中press c。这会将您移动到您设置的下一个断点(如果您在循环中,则返回到同一个断点),或者只是在没有断点的情况下结束页面请求。

答案 2 :(得分:0)

有3个主要的调试命令

  • c - 继续
  • s - 步入
  • n - next / Step over

您正在寻找的是“n”,它允许您浏览方法列表,而无需进入包含其余代码的代码或ruby gem。