Я пытаюсь написать метод, который сообщает мне каждый класс, который включает в себя определенный модуль. Это выглядит так -
def Rating.rateable_objects
rateable_objects = []
ObjectSpace.each_object(Class) do |c|
next unless c.include? Rateable
rateable_objects << c
end
rateable_objects
end
Где "Rateable" - это мой модуль, который я включаю в несколько моделей.
Я обнаружил, что этот метод возвращает [], если я вызываю его сразу после загрузки консоли rails или запуска сервера. Но если я вначале создаю экземпляр одной из моделей-потребителей, он возвращает эту модель в результате.
Так когда же включаются модули? Я предполагаю позже в процессе, чем когда он запускает приложение. Если я не могу получить эту информацию таким способом на раннем этапе, есть ли способ сделать это?