我可以很容易地在 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 应用程序中从基类派生出来的所有模型并列出它们; 我有一个可以处理任何这样的模型的控制器,我希望能够添加新的模型而不必修改控制器