2014-10-03 60 views
0

我有一個名爲Nameable的模塊和一些包含此模塊的模型。如何查找包含模塊的所有類別

有沒有辦法知道哪些模型(類)包含此模塊?

+0

*當你想知道嗎?總是有'included'和'extended'。 – 2014-10-03 18:19:41

+0

嘿@DaveNewton我正在設置一個回叫警衛,當我更換一個模塊時(可以說'可命名'),它將運行所有規格。所以要回答你的問題,我想隨時知道什麼是包含'Nameable'的類。 – 2014-10-03 18:23:38

回答

1

嗯,我已經想出瞭如何至少找到所有類的名稱。

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

不知道這是否是最好的辦法。

1

另一種方式來做到這一點是:

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

這會給你取決於模型是否包括Nameable模塊值truefalse的列表。

您可以操作map的主體以返回您喜歡的數據(我無法從您的問題中獲得)。

相關問題