如何在Ruby中定义类的特定属性的方法?

时间:2011-09-28 15:58:35

标签: ruby class methods

我有一些Ruby问题。 让我上课Cat。 Cat具有age属性,即Class :: Integer。 如何添加方法.humanize,它将计算我项目中所有猫的人类年龄等值? 即......

@cat.age #=> 2
@cat.age.humanize #=> 20
@tree.age #=> 5
@tree.age.humanize #=> NO METHOD ERROR!!! OH, YEAH!

1 个答案:

答案 0 :(得分:1)

这称为元编程。您可以通过执行以下操作来完成您想要的任务:

def @cat.humanize_age
  return @age * 10
end

您可以将方法添加到Integer内的Cat类中:

class Cat
  attr_accessor :age

  def initialize(a)
    @age = a
    add_meta
  end

  def add_meta
    def @age.humanize
      return self * 10
    end
  end
end