相关疑难解决方法(0)

在Ruby中查找类的所有后代

我可以轻松地提升Ruby中的类层次结构:

String.ancestors     # [String, Enumerable, Comparable, Object, Kernel]
Enumerable.ancestors # [Enumerable]
Comparable.ancestors # [Comparable]
Object.ancestors     # [Object, Kernel]
Kernel.ancestors     # [Kernel]
Run Code Online (Sandbox Code Playgroud)

有没有办法下降层次结构?我想这样做

Animal.descendants      # [Dog, Cat, Human, ...]
Dog.descendants         # [Labrador, GreatDane, Airedale, ...]
Enumerable.descendants  # [String, Array, ...]
Run Code Online (Sandbox Code Playgroud)

但似乎没有一种descendants方法.

(出现这个问题是因为我想找到Rails应用程序中的所有模型,这些模型来自基类并列出它们;我有一个控制器可以使用任何这样的模型,我希望能够添加新模型无需修改控制器.)

ruby

138
推荐指数
6
解决办法
6万
查看次数

标签 统计

ruby ×1