Tôi có thể dễ dàng tăng thứ bậc lớp trong Ruby:
String.ancestors # [String, Enumerable, Comparable, Object, Kernel]
Enumerable.ancestors # [Enumerable]
Comparable.ancestors # [Comparable]
Object.ancestors # [Object, Kernel]
Kernel.ancestors # [Kernel]
Có cách nào để đi xuống thứ bậc không? Tôi muốn làm điều này
Animal.descendants # [Dog, Cat, Human, ...]
Dog.descendants # [Labrador, GreatDane, Airedale, ...]
Enumerable.descendants # [String, Array, ...]
nhưng dường như không có một descendants
phương pháp nào.
(Câu hỏi này xuất hiện vì tôi muốn tìm tất cả các mô hình trong ứng dụng Rails xuất phát từ một lớp cơ sở và liệt kê chúng; Tôi có một bộ điều khiển có thể hoạt động với bất kỳ mô hình nào như vậy và tôi muốn có thể thêm các mô hình mới mà không phải sửa đổi bộ điều khiển.)