介绍ruby / rails对象?
在控制台中查看Rails中的活动记录对象(例如Foo.find(1))时,您会看到如下所示的内容:
=> #<Foo id: 1, name: "Far">
其中显示了数据库中的模型名称和每个活动记录字段,而不显示相同的@instance变量,在这种情况下,它将是@ far =。
如何获得常规类对象的相同表示,而该对象则返回,并将名称定义为attr_accessor:
=> #<Foo:0x00000102fbf970 @name="Far">
我希望这样做的原因是能够查看类的一组方法的值,而不是仅查看attr_accessor(或attr_reader)方法变量。
有没有一种方法可以定义对象的输出是什么?
irb中的输出是通过调用Object#inspect
来完成的,后者又调用Object#to_s
。 您可以重写其中之一。 我倾向于将检查视为调试视图,并将to_s视为标准用户显示。
class Foo
attr_accessor :bar, :value
def to_s
@value
end
def inspect
"bar: #{@bar}, value: #{@value}"
end
end
因人而异
链接地址: http://www.djcxy.com/p/25729.html