我有一个名为Nameable
的模块和一些包含此模块的模型。
有没有办法知道哪个模型(类)包含了这个模块?
答案 0 :(得分:1)
好吧,我已经弄清楚如何找到所有类的名称。
Module.constants.select { |c| (eval c.to_s).is_a?(Class) && (eval c.to_s).include?(Nameable)}
不知道这是否是最佳方式。
答案 1 :(得分:1)
另一种方法是:
ActiveRecord::Base.descendants.map { |model| model.include?(Nameable) }
根据模型是否包含true
模块,这将为您提供值false
或Nameable
的列表。
您可以操纵map
的正文以返回您喜欢的数据(我无法从您的问题中获取)。