Есть ли способ получить список всех определенных классов. Я ищу для кода:Как я могу получить все определенные классы?
Class.instances.each do |klass|
puts klass.name
end
Если нет никакого способа сделать это. Можно определить класс А так, чтобы его потомки регистрировались в нем? Например, таким образом:
class A
...
end
class B < A
end
class C < B
end
A.descendants # => [B, C]
Ваше первое решение не будет работать, так как 'constants' возвращает массив символов, а не фактические константы. –
Я знаю, что делает 'константы', но вам это не кажется. 'Object.constants.grep (класс) .empty? # => true', поэтому ваш 'каждый' бесполезен. –
'ob' будет * never * быть экземпляром класса. Это означает, что вы включаете вещи, которые не являются классами в вашем списке, поскольку вы никогда не фильтруете их. Я не пытаюсь быть грубым, но вы указываете мне документацию, которая показывает, что то, что вы делаете, не работает так, как вы ожидаете. –