如何获取多态关联中所有类型的关联表的列表



假设,我们有一个表Commentable,它有commentable_idcommentable_type,它们本质上是多态的。基于此,我们如何根据关联获得所有关联表的列表/所有可能的commentable_type

检查您的模型是否存在comments关系。我假设每个值得称赞的模型都有许多comments

ApplicationRecord.descendants.select { |klass| klass.reflections['comments'] }

或者,您可以选择一个不同的字段Commentable.distinct(:commentable_type).pluck(:commentable_type)。此查询返回一个类型数组(作为字符串(。每种类型都是一个模型名称,知道它们,就可以推断出表名称。

最新更新