gpt4 book ai didi

ruby-on-rails - 从 Rails 的单表继承中获取子类的列表/数组?

转载 作者:行者123 更新时间:2023-12-03 22:50:16 25 4
gpt4 key购买 nike

我有一大堆子类,它们通过我的 Rails 应用程序中的单表继承从父类继承。我想要一种方法来获取从主类继承的所有子类的数组。

我尝试了在另一个 SO 答案中找到的以下单链接命令,但它只返回父类。

ObjectSpace.each_object(class<<MyParentClass;self;end)

有没有干净的方法来做到这一点?

编辑:
显然,Rails 在 Dev 模式下调用时只会延迟加载子类,并且可能会根据 Rails 版本进行生产。但是,第一个答案应该适用于生产模式下的 Rails 3.1 及更高版本。

最佳答案

Rails 扩展了 Ruby Classsubclasses()方法。

在 Rails 3 中你可以直接调用它:

YourClass.subclasses

在 Rails 2.3 中,".subclasses"是 protected ,所以我们必须使用 send() 来调用它:
YourClass.send(:subclasses)

关于ruby-on-rails - 从 Rails 的单表继承中获取子类的列表/数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10535507/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com