如何在Ruby中为类的特定属性定义方法?
问题描述:
我有一些Ruby问题。 让我有课猫。 Cat有age ::属性,它是Class :: Integer。 如何添加方法.humanize,它将计算我的项目中所有猫的人类年龄等效形式? 即...如何在Ruby中为类的特定属性定义方法?
@cat.age #=> 2
@cat.age.humanize #=> 20
@tree.age #=> 5
@tree.age.humanize #=> NO METHOD ERROR!!! OH, YEAH!
答
这被称为元编程。你可以完成你想要通过执行以下操作:
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
@ everm1ind,人会避开你的问题,如果你从来没有接受答案。您应该完成所有针对每个问题的答案,如果您想在StackOverflow上认真对待,请点击最有用的答案旁边的复选标记。 – providence
@providence,感谢您的建议! – everm1nd