使用Ruby 2.1.2版
class A
def foo
ObjectSpace::trace_object_allocations do
obj = Object.new
p "#{ObjectSpace::allocation_class_path(obj)}"
end
end
end
A.new.foo #=> "Class"
上面的方法应该返回对象的分配类路径。
但我得到的是一个空字符串而不是“类”。
是方法中的实现错误,还是文档没有更新。
这里是link
谢谢
最佳答案
我想你刚刚在核心发现了一个可能的漏洞。
我已经向开发人员报告了这个问题,bug #9938。
我确实怀疑是物体追踪的结果,但需要进一步调查。
更新:
Koichi Sasada(又名ko1)已经确定了原因,并承诺在运行Ruby 2.2时修复。
同时,您可以使用解决方案手动缓存模块中的对象名lookup_allocation_info
放在对象跟踪代码之前。
关于ruby-on-rails - ObjectSpace#allocation_class_path无法正常工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24181789/