从#<class:0x007fdf62060e48> </class:0x007fdf62060e48>这样的引用中确定类类型

时间:2012-06-07 07:34:51

标签: ruby

当我在Rails中开发时,有时会出现NoMethodError:

(undefined method `new_with_url' for #<Class:0x007fdf62060e48>):

我想知道是否可以根据字符串Class:0x007fdf62060e48确定提升值的类。我无法轻易重现错误。

1 个答案:

答案 0 :(得分:1)

这适用于Ruby(MRI)1.9.3,但非常依赖于实现,并且可能随时发生变化:

ObjectSpace._id2ref(0x007fdf62060e48 / 2)

这假设说明#<Class:0x007fdf62060e48>中的十六进制数是对象的实际ID的两倍,确实(AFAIK)对于除MRI中的Fixnums之外的所有对象都是如此。不过,我不确定你是否能够从输出中获得任何有用的东西;该课程仍然没有名称,因此在您的代码中找到它是非常棘手的。