【发布时间】:2011-01-24 12:31:03
【问题描述】:
我可以在 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 应用程序中找到从基类继承的所有模型并列出它们;我有一个可以与任何此类模型一起使用的控制器,我希望能够无需修改控制器即可添加新模型。)
【问题讨论】:
标签: ruby