ฉันสามารถขึ้นชั้นลำดับชั้นใน 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 ที่สืบทอดมาจากคลาสพื้นฐานและแสดงรายการเหล่านั้นฉันมีคอนโทรลเลอร์ที่สามารถทำงานกับโมเดลดังกล่าวได้และฉันต้องการเพิ่มโมเดลใหม่ โดยไม่ต้องดัดแปลงคอนโทรลเลอร์)