我可以轻松地提升Ruby中的类层次结构:
String.ancestors # [String, Enumerable, Comparable, Object, Kernel]
Enumerable.ancestors # [Enumerable]
Comparable.ancestors # [Comparable]
Object.ancestors # [Object, Kernel]
Kernel.ancestors # [Kernel]
有什么办法可以降低层次结构吗?我想这样做
Animal.descendants # [Dog, Cat, Human, ...]
Dog.descendants # [Labrador, GreatDane, Airedale, ...]
Enumerable.descendants # [String, Array, ...]
但似乎没有descendants
方法。
(出现这个问题是因为我想在一个从基类派生的Rails应用程序中找到所有模型并列出它们;我有一个可以与任何此类模型一起使用的控制器,并且我希望能够添加新模型无需修改控制器。)