Metaprogrammering er å skrive kode som skriver eller modifiserer kode under kjøring — definere metoder dynamisk, respondere på udefinerte metoder, og inspektere/endre klasser on-the-fly. Rubys dynamiske natur (alt er et objekt, inkludert klasser) gjør det eksepsjonelt bra på metaprogrammering, som driver mye av Rails sitt "magiske" oppførsel.
Definere metoder dynamisk
[, , ].each ||
(attribute)
instance_variable_get()
() ||
instance_variable_set(, value)
