Metaprogramiranje je pisanje kode, ki piše ali spreminja kodo med izvajanjem — dinamično definiranje metod, odzivanje na nedefinirane metode in pregledovanje/spreminjanje razredov v realnem času. Dinamična narava Rubyja (vse je objekt, vključno z razredi) ga naredi izjemno dobrim za metaprogramiranje, kar omogoča pravo »magijo« Railsa.
Dinamično definiranje metod
[, , ].each ||
(attribute)
instance_variable_get()
() ||
instance_variable_set(, value)
