Метапрограммирование — это написание кода, который создаёт или изменяет код во время выполнения — определение методов динамически, обработка неопределённых методов и инспектирование/изменение классов на лету. Динамическая природа Ruby (всё является объектом, включая классы) делает его исключительно хорошим для метапрограммирования, что питает большую часть "магии" Rails.
Динамическое определение методов
[, , ].each ||
(attribute)
instance_variable_get()
() ||
instance_variable_set(, value)
