Metaprogramlama, çalışma zamanında kodu yazan veya değiştiren kod yazmaktır — dinamik olarak metodları tanımlama, tanımlanmamış metodlara yanıt verme ve sınıfları anında inceleme/değiştirme. Ruby'nin dinamik doğası (her şey bir nesnedir, sınıflar da dahil olmak üzere) onu metaprogramlama açısından istisnai kılar ve bu, Rails'in "magic"inin çoğunu güçlendirir.
Metodları dinamik olarak tanımlama
[, , ].each ||
(attribute)
instance_variable_get()
() ||
instance_variable_set(, value)
