Corregir un error Variable local indefinida de NameError de Ruby

En Ruby, no tiene que declarar variables, pero sí tiene que asignarles algo antes de que puedan consultarse.

Si se refiere a una variable local que aún no existe, es posible que vea uno de los dos errores.

Ruby Name Mensajes de error

NameError: variable local indefinida o método 'a' para # 
NameError: variable local indefinida o método 'a' para main: Object

Nota: Puede haber varios identificadores en lugar de 'un' encima.

Este es un ejemplo en el que el código generará el mensaje Ruby "NameError" desde la variable un aún no ha sido asignado a nada:

pone un

Cómo arreglar el error

Las variables deben asignarse antes de que puedan usarse. Entonces, usando el ejemplo de arriba, arreglar el error es tan simple como hacer esto:

a = 10 pone un 

Por qué recibes este error

La respuesta obvia es que te estás refiriendo a una variable que aún no se ha creado. Esto suele deberse a un error tipográfico, pero puede ocurrir al refactorizar el código y cambiar el nombre de las variables.

También puede ver el error Ruby "NameError: variable local indefinida" si desea ingresar una cadena. Las cadenas se entienden cuando existen entre comillas. Si no usó comillas, Ruby pensará que se refería a un método o variable (que no existe) y arrojará el error.

Entonces, revise su código para ver a qué se supone que se refiere esta variable y corríjalo. También es posible que desee buscar otras instancias del mismo nombre de variable en el mismo método: si está mal en un lugar, puede estar mal en otros.