ответ sepp2k не будет работать, если M::C
вообще не определено, так как Ruby поднимет NameError
в этом блоке.
Попробуйте это:
M.constants.include?('C')
Если вы беспокоитесь, что у вас есть ссылка на M::C
под другим именем, например:
module M
class C
end
end
MY_M_C = M::C
, тогда вы можете проверить, является ли MY_M_C
таким же, как M
C
, например:
M.constants.include?('C') ? MY_M_C == M.const_get(:C) : false