Metaprogramimi është shkrimi i kodit që shkruan ose modifikon kodin në kohën e ekzekutimit — përcaktimi i metodave në mënyrë dinamike, përgjegjja ndaj metodave të përcaktuara, dhe inspektimi/ndryshimi i klasave me vete. Natyra dinamike e Ruby-t (gjithçka është një objekt, duke përfshirë klasat) e bën atë jashtëzakonisht të mirë në metaprogramim, i cili fuqizon shumë të "magjisë" të Rails-it.
Përcaktimi i metodave në mënyrë dinamike
[, , ].each ||
(attribute)
instance_variable_get()
() ||
instance_variable_set(, value)
