J'essaye d'écrire une méthode qui m'indique chaque classe qui inclut un module particulier. Il ressemble à ceci -Quand les modules sont-ils inclus dans une classe Ruby fonctionnant dans des rails?
def Rating.rateable_objects
rateable_objects = []
ObjectSpace.each_object(Class) do |c|
next unless c.include? Rateable
rateable_objects << c
end
rateable_objects
end
Où "Rateable" est mon module que j'inclus dans plusieurs modèles. Ce que je trouve est que cette méthode retourne [] si je l'appelle immédiatement après le démarrage de la console ou l'exécution du serveur. Mais si j'instancie d'abord une instance de l'un des modèles consommateurs, il retournera ce modèle dans le résultat.
Alors quand les modules sont-ils inclus? Je devine plus tard dans le processus que quand l'application démarre. Si je ne peux pas obtenir cette information de cette façon au début du processus, y a-t-il un moyen d'y parvenir?
Je pense qu'il serait chargé lorsque le modèle contenant le module est appelé. –