Metaprogramiranje je pisanje koda koji piše ili mijenja kod tijekom izvršavanja — dinamičko definiranje metoda, reagiranje na nedefinisane metode, te inspekcija/alteracija klasa u letu. Dinamička priroda Rubyja (sve je objekt, uključujući klase) čini ga izuzetno dobrim za metaprogramiranje, što je osnova "magije" koja se koristi u Rails-u.
Dinamičko definiranje metoda
[, , ].each ||
(attribute)
instance_variable_get()
() ||
instance_variable_set(, value)
