Metaprogramming ni kuandika code inayoandika au kurekebisha code wakati wa runtime — kufafanua methods kwa njia ya kidinamiki, kujibu methods zisizofafanuliwa, na kukagua/kubadilisha classes papo hapo. Asili ya kidinamiki ya Ruby (kila kitu ni object, ikiwemo classes) huifanya kuwa nzuri sana kwa metaprogramming, ambayo huendesha sehemu kubwa ya "uchawi" wa Rails.
Kufafanua methods kwa njia ya kidinamiki
[, , ].each ||
(attribute)
instance_variable_get()
() ||
instance_variable_set(, value)
