Comment résoudre une erreur Ruby "variable locale non définie"

Dans Rubis, vous n'avez pas à déclarer de variables, mais vous devez leur attribuer quelque chose avant qu'elles puissent être référencées.

Si vous faites référence à un variable locale qui n'existe pas encore, vous pouvez voir l'une des deux erreurs.

Ruby NameError Messages

NameError: variable locale non définie ou méthode `a 'pour # 
NameError: variable locale non définie ou méthode `a 'pour main: Object

Remarque: Il peut y avoir différents identifiants à la place de 'une' au dessus.

Ceci est un exemple où le code générera le message Ruby "NameError" puisque la variable une n'a encore été assigné à rien:

met un

Comment réparer l'erreur

Les variables doivent être attribuées avant de pouvoir être utilisées. Ainsi, en utilisant l'exemple ci-dessus, la correction de l'erreur est aussi simple que cela:

a = 10. met un. 

Pourquoi vous obtenez cette erreur

La réponse évidente est que vous faites référence à une variable qui n'a pas encore été créée. Cela est le plus souvent dû à une faute de frappe, mais peut se produire lors de la refactorisation du code et du changement de nom des variables.

instagram viewer

Vous pouvez également voir l'erreur "NameError: variable locale non définie" Ruby si vous avez l'intention d'entrer une chaîne. Les chaînes sont comprises lorsqu'elles existent entre guillemets. Si vous n'avez pas utilisé de guillemets, Ruby pensera que vous vouliez référencer une méthode ou une variable (qui n'existe pas) et lancer l'erreur.

Alors, revenez sur votre code pour voir à quoi cette variable est censée faire référence et corrigez-le. Vous pouvez également rechercher d'autres instances du même nom de variable dans la même méthode - si c'est faux à un endroit, cela peut être faux à d'autres.

instagram story viewer