Ich kann die Klassenhierarchie in Ruby leicht aufsteigen lassen:
String.ancestors # [String, Enumerable, Comparable, Object, Kernel]
Enumerable.ancestors # [Enumerable]
Comparable.ancestors # [Comparable]
Object.ancestors # [Object, Kernel]
Kernel.ancestors # [Kernel]
Gibt es eine Möglichkeit, die Hierarchie ebenfalls abzusteigen? Ich würde das gerne machen
Animal.descendants # [Dog, Cat, Human, ...]
Dog.descendants # [Labrador, GreatDane, Airedale, ...]
Enumerable.descendants # [String, Array, ...]
aber es scheint keine descendants
Methode zu geben.
(Diese Frage wird gestellt, weil ich alle Modelle in einer Rails-Anwendung finden möchte, die von einer Basisklasse abstammen, und sie auflisten möchte. Ich habe einen Controller, der mit jedem solchen Modell arbeiten kann, und ich möchte neue Modelle hinzufügen können ohne den Controller ändern zu müssen.)