Я работаю над this pretty thorny problem и решил, что я мог бы быть в состоянии динамически создать класс, который наследует от StandardError, делая это:Constantize поднимает Uninitialized Constant Ошибка
something = "JustForBelow"
error_class = "#{something}Error".constantize
error_class = StandardError.new
Но я получаю очень странные ошибки (по-моему):
Uninitialized constant JustForBelowError
Я не инициализирую его прямо там?
(по существу) такая же ошибка появляется, когда я пытаюсь это:
StandardError.const_get "#{something}Error"
# => NameError: uninitialized constant StandardError::JustForBelowClass
Это чувствует себя очень странно, потому что а) это супер случайные имена; конфликтов нет, и б) я уверен, что использовал константизацию, как в первом примере раньше. Любые идеи, что происходит не так?
Так не существует никакого способа определить, что постоянный динамически? Как и в случае, не зная точно, какая строка заменит JustForBelowError, инициализировать этот класс из интерполированной строки? – Sasha
Подождите. Просто увидел выше, что, кажется, отвечает на этот вопрос – Sasha