Arreglar método indefinido en Ruby

Nurudeen Ibrahim 21 junio 2023
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.

Artículo relacionado - Ruby Method