Arreglar método indefinido en Ruby
Este artículo discutirá la corrección del error más común en los proyectos de Ruby, el método indefinido.
Arreglar método indefinido en Ruby
El método indefinido también se denomina excepción NoMethodError
, y es el error más común dentro de los proyectos, según The 2022 Airbrake Error Data Report.
Ocurre cuando un receptor (un objeto) recibe un método que no existe.
Método indefinido en un objeto incorporado
El siguiente código demuestra cómo desencadenar un error NoMethodError
en un objeto de matriz si llamamos a un método indefinido máximo
en él.
Código de ejemplo:
arr = [1, 2, 3, 7, 4]
puts arr.maximum
Producción :
undefined method `maximum' for [1, 2, 3, 7, 4]:Array (NoMethodError)
Método indefinido en un objeto personalizado
El siguiente código muestra cómo desencadenar un error NoMethodError
en un objeto personalizado.
Código de ejemplo:
class Employee
def initialize(last_name, first_name)
@last_name = last_name
@first_name = first_name
end
def full_name
"#{@first_name} #{@last_name}"
end
end
employee1 = Employee.new('John', 'Doe')
puts employee1.fullname
Producción :
undefined method `fullname' for #<Employee:0x0000565026778608> (NoMethodError)
Did you mean? full_name
En el ejemplo anterior, usamos intencionalmente fullname
en lugar de full_name
y, como resultado, Ruby no pudo encontrar una coincidencia, pero encontró un nombre que se parecía mucho. Por lo tanto, ¿Quiso decir? nombre_completo
se agregó al rastreo de errores.