Metaprogramación es escribir código que escribe o modifica código en tiempo de ejecución — definiendo métodos dinámicamente, respondiendo a métodos indefinidos, e inspeccionando/alterando clases sobre la marcha. La naturaleza dinámica de Ruby (todo es un objeto, incluyendo clases) lo hace excepcionalmente bueno en metaprogramación, que es lo que potencia mucha de la "magia" de Rails.
Definiendo métodos dinámicamente
[, , ].each ||
(attribute)
instance_variable_get()
() ||
instance_variable_set(, value)
