Из комментариев, которые вы дали, похоже, что 'String'
- это просто пример, а не значение, которое вы буквально передаете const_get
.Фактическое значение, по-видимому, «Назначение», это правильно?
Когда вы выполняете Object.const_get('Assignment')
и получаете ошибку uninitialized constant
, это указывает, что на данный момент класс Assignment
еще не загружен.
Когда вы используете Rails
, происходит много автозагрузки, если файлы находятся в нужной папке, а классы следуют соглашениям об именах.Так как вы запускаете «автономный» скрипт ruby, автозагрузка не происходит, и вам нужно будет загрузить файл самостоятельно.
Добавление строки типа
require_relative "somepath/assignment"
должно сработать.somepath
необходимо адаптировать к расположению каталога / файла, которое у вас есть.Он загрузит файл и выполнит код ruby в этом файле.Если assignment.rb
определяет что-то вроде
class Assignment
end
, тогда const_get
будет работать.
При этом: каков ваш точный вариант использования для этого?Зачем вам нужно динамически находить занятия?Также обратите внимание, что это открывает ваше приложение для (маловероятных) потенциальных проблем безопасности, если вы позволите пользовательскому вводу определить, какие классы загружаются.