Rails:在我的异常#<Task:0x98438b8>中,唯一的十六进制值代表什么

Mat*_*ias 1 ruby-on-rails exception

我是铁杆新手,最近一直想知道以下内容:"

十六进制值(例如0x98438b8)在例外中表示的是什么

undefined local variable or method "company_id" for #<Task:0x98438b8>

这对调试有什么用?

Fre*_*ung 6

在MRI(Matz的Ruby解释器 - Ruby的标准实现)上,它是底层内存地址的值,它与object_id紧密相连 .确切的关系取决于平台 - 在我的机器上它是对象id的两倍,看源.其他实现(jruby,mruby,rubinius)可能会以不同的方式实现这一点.

在这种特殊情况下,它并没有特别有用.在其他情况下,知道这是Task的实例是完全相同的对象,因为一些先前的值可能是有用的.