如何查找包含模块的所有类

问题描述 投票:0回答:2

我有一个名为

Nameable
的模块以及包含此模块的一些模型。

有没有办法知道哪些模型(类)包含了这个模块?

ruby-on-rails ruby
2个回答
1
投票

另一种方法是:

ActiveRecord::Base.descendants.map { |model| model.include?(Nameable) }

这将为您提供值列表

true
false
,具体取决于模型是否包含
Nameable
模块。

您可以操纵

map
的主体来返回您喜欢的数据(我无法从您的问题中获得)。


1
投票

我想出了如何至少找到所有类的名称。

Module.constants.select { |c| (eval c.to_s).is_a?(Class) && (eval c.to_s).include?(Nameable)}

我不确定这是否是最好的方法。

© www.soinside.com 2019 - 2024. All rights reserved.