Metaprogrammering är att skriva kod som skriver eller modifierar kod under körning — att definiera metoder dynamiskt, svara på odefinierade metoder och inspektera/ändra klasser på tillflykten. Rubys dynamiska natur (allt är ett objekt, inklusive klasser) gör det exceptionellt bra på metaprogrammering, vilket driver mycket av Rails "magi".
Att definiera metoder dynamiskt
[, , ].each ||
(attribute)
instance_variable_get()
() ||
instance_variable_set(, value)
