Metaohjelmointi on koodin kirjoittamista, joka kirjoittaa tai muokkaa koodia ajon aikana — metodien määrittäminen dynaamisesti, vastaampaa määrittelemättömiin metodikutsuihin, ja luokkien tutkiminen/muokkaaminen lennosta. Rubyn dynaaminen luonne (kaikki on objekti, myös luokat) tekee siitä poikkeuksellisen hyvän metaohjelmoinnissa, mikä voimaannuttaa suuren osan Railsin "magiasta".
Metodien dynaaminen määrittäminen
[, , ].each ||
(attribute)
instance_variable_get()
() ||
instance_variable_set(, value)
