La metaprogrammazione è scrivere codice che scrive o modifica codice a runtime — definendo metodi dinamicamente, rispondendo a metodi non definiti, e ispezionando/alterando classi al volo. La natura dinamica di Ruby (tutto è un oggetto, incluse le classi) lo rende eccezionalmente bravo nella metaprogrammazione, che alimenta molto della "magia" di Rails.
Definire metodi dinamicamente
[, , ].each ||
(attribute)
instance_variable_get()
() ||
instance_variable_set(, value)
