Je peux facilement remonter la hiérarchie des classes en Ruby :
String.ancestors # [String, Enumerable, Comparable, Object, Kernel]
Enumerable.ancestors # [Enumerable]
Comparable.ancestors # [Comparable]
Object.ancestors # [Object, Kernel]
Kernel.ancestors # [Kernel]
Existe-t-il un moyen de descendre dans la hiérarchie ? J'aimerais faire ceci
Animal.descendants # [Dog, Cat, Human, ...]
Dog.descendants # [Labrador, GreatDane, Airedale, ...]
Enumerable.descendants # [String, Array, ...]
mais il ne semble pas y avoir de descendants
méthode.
(Cette question se pose parce que je veux trouver tous les modèles d'une application Rails qui descendent d'une classe de base et les lister ; j'ai un contrôleur qui peut fonctionner avec n'importe quel modèle de ce type et j'aimerais pouvoir ajouter de nouveaux modèles sans devoir modifier le contrôleur).