Metaprogramming ialah penulisan kod yang menulis atau mengubah suai kod semasa runtime — mentakrifkan method secara dinamik, merespons method yang tidak ditakrifkan, dan memeriksa/mengubah class secara langsung. Sifat dinamik Ruby (segala-galanya ialah objek, termasuk class) menjadikannya sangat baik dalam metaprogramming, yang menggerakkan sebahagian besar "magik" Rails.
Mentakrifkan method secara dinamik
[, , ].each ||
(attribute)
instance_variable_get()
() ||
instance_variable_set(, value)
