Ruby on rails 遍历函数时自动打印每个函数名

Ruby on rails 遍历函数时自动打印每个函数名,ruby-on-rails,ruby,Ruby On Rails,Ruby,当我传递函数时,Ruby/Rails是否会自动打印函数名以方便调试?正如我发现的,在每个函数之前添加put很麻烦。请指教,谢谢 例如: def update_original_calendar puts '-> update_original_calendar' end def update_destination_calendar puts '-> update_destination_calendar' update_original_calendar end 示

当我传递函数时,Ruby/Rails是否会自动打印函数名以方便调试?正如我发现的,在每个函数之前添加put很麻烦。请指教,谢谢

例如:

def update_original_calendar
  puts '-> update_original_calendar'
end

def update_destination_calendar
  puts '-> update_destination_calendar'
  update_original_calendar
end
示例结果:

-> update_destination_calendar
-> update_original_calendar
你可以用这个方法。将以下代码放在初始化逻辑的某个地方。只要确保当应用程序逻辑到达要跟踪的方法时,该代码段已经执行

classes_to_trace = %w(YOUR_CLASSNAME1 YOUR_CLASSNAME2)
set_trace_func proc {|event, file, line, id, binding, classname|
  if event == 'call' and classes_to_trace.include?(classname.to_s)
    puts "event = #{event}, file = #{file}, line = #{line}, id = #{id}, classname = #{classname}"
  end
}

如果您使用的是Ruby 2.x:


我还没有测试它,但它应该可以工作

这不是调试器的作用吗?
trace = TracePoint.new(:call) do |tp|
    p [tp.lineno, tp.defined_class, tp.method_id, tp.event]
end

trace.enable

# Your code here