Вы говорите, что хотите "создать экземпляр класса и сохранить экземпляр в том же классе, что и константа".Я интерпретировал это как «создание экземпляра класса и сохранение того же экземпляра внутри класса как константы».Это также соответствует названию вопроса.
Вы можете сделать это следующим образом.
class MyClass
def initialize(arg)
puts(arg)
self.class.const_set(:DEFAULT, self)
end
end
MyClass.new('hi')
hi
#=> #<MyClass:0x00005c3edb328a40>
MyClass.constants
#=> [:DEFAULT]
MyClass::DEFAULT
#=> #<MyClass:0x00005c3edb328a40>