Uso de send y eval
Descubra cómo ejecutar llamadas dinámicas a métodos y evaluar cadenas como código Ruby
Uso de send y eval es una lección gratuita de Ruby Academy en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Ruby Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Ruby Academy incluye 4 lecciones en total.
Ejecución dinámica de código
Uso de send y eval
Ruby proporciona métodos potentes como send y eval para ejecutar código dinámicamente.
Estos métodos permiten llamar a métodos dinámicamente y evaluar expresiones de Ruby durante la ejecución.

¿Qué es el método send?
¿Qué es el método send?
send permite llamar a métodos dinámicamente por su nombre.
Puede invocar métodos privados y públicos.
class Person
def greet
'Hello!'
end
end
p = Person.new
puts p.send(:greet)Uso de send con argumentos
Uso de send con argumentos
send puede pasar argumentos a los métodos dinámicamente.
class Person
def greet(name)
"Hello, #{name}!"
end
end
p = Person.new
puts p.send(:greet, 'Alice')Llamar a métodos privados con send
Llamar a métodos privados con send
send puede omitir las reglas de visibilidad de los métodos y llamar a métodos privados.
class Person
private
def secret
'This is a secret!'
end
end
p = Person.new
puts p.send(:secret)¿Qué es el método eval?
¿Qué es el método eval?
eval ejecuta una cadena como código de Ruby durante la ejecución.
code = "5 + 10"
puts eval(code) # Outputs: 15Ejecutar código dinámico con eval
Ejecutar código dinámico con eval
eval puede definir variables dinámicamente y ejecutar expresiones.
eval("x = 100")
puts xDefinir métodos con eval
Definir métodos con eval
Utilice eval para definir métodos dinámicamente.
eval("def dynamic_method; 'Hello from eval'; end")
puts dynamic_methodRiesgos de seguridad de send y eval
Riesgos de seguridad de send y eval
El uso incorrecto de send y eval puede introducir riesgos de seguridad:
evalpuede ejecutar código que no sea de confianza, lo que puede provocar vulnerabilidades de seguridad.sendpuede llamar a métodos privados o sensibles.- Utilícelos con precaución para evitar comportamientos imprevistos.
Resumen de send y eval
¡Enhorabuena!
Ha aprendido a utilizar send y eval para ejecutar métodos dinámicamente.
Con esto concluye la sección de metaprogramación en Ruby.

Preguntas frecuentes
¿La lección «Uso de send y eval» es gratis?
Sí — el texto completo de «Uso de send y eval» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Ruby Academy, actualiza a CoddyKit PRO. El curso de Ruby Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Uso de send y eval»?
Descubra cómo ejecutar llamadas dinámicas a métodos y evaluar cadenas como código Ruby Practicas Ruby Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Ruby Academy?
No se requiere experiencia previa. Ruby Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.
¿Cuánto tiempo toma la lección «Uso de send y eval»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Ruby Academy?
Sí. Cada lección de Ruby Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- ¿Qué es la metaprogramación?
- Definición dinámica de métodos
- Clases abiertas y monkey patching
- Uso de send y eval