Отражение в Ruby. Создавать объект по заданному имени класса

Я пришел к рубину с PHP. Как я мог сделать следующее в рубине?

$className = 'ArrayObject';
$arrayObject = new $className();

Ответы

Ответ 1

Вы можете сделать это:

arrayObject = Object::const_get('Array').new

Ответ 2

Вы также можете использовать следующее, если используете Ruby on Rails:

array_object = "Array".constantize.new

Ответ 3

Если у вас есть класс, например String:

a = String
a.new("Geo")

предоставит вам строку. То же самое относится и к другим классам (число и тип параметров будут различаться, конечно).