从to_s调用中删除object_id

时间:2014-03-05 19:38:15

标签: ruby string class object

我正在编辑一个类'to_s方法,以使它更漂亮。在最后一行,object_id包含#<Profile:0x007fde5aadd280>。在调用to_s

之后,无需显式地从输出中删除此object_id的任何方法

1 个答案:

答案 0 :(得分:0)

您需要编写自己的#inspect方法。

class Foo
  def inspect
    "<#%s>" % self.class
  end
end

Foo.new # => <#Foo>

阅读文档Object#inspect

  

返回包含obj的人类可读表示的字符串。默认情况下,显示类名以及实例变量及其值的列表(通过在每个变量上调用inspect)。 用户定义的类应该重写此方法以更好地表示obj。覆盖此方法时,它应返回一个字符串,其编码与默认外部编码兼容。