Ruby の「NameError: 未定義のローカル変数」エラーを修正する

存在しない変数を参照している場合、このようなエラーが表示されます

コンピューター画面上のエラー メッセージの画像

エポキシデュード/ゲッティイメージズ





のルビー、変数を宣言する必要はありませんが、変数を参照する前に何かを割り当てる必要があります。

あなたが言及している場合 ローカル変数 まだ存在しない場合、2 つのエラーのいずれかが表示されることがあります。

Ruby 名エラー メッセージ

|_+_| |_+_|

ノート: の代わりにさまざまな識別子がある場合があります 「あ」 その上。

これは、コードが Ruby 'NameError' メッセージを生成する例です。 a はまだ何にも割り当てられていません:

|_+_|

エラーを修正する方法

変数は、使用する前に割り当てる必要があります。したがって、上記の例を使用すると、エラーを修正するのはこれを行うのと同じくらい簡単です。

|_+_|

このエラーが発生する理由

明らかな答えは、まだ作成されていない変数を参照しているということです。これはタイプミスが原因であることがほとんどですが、コードのリファクタリングや変数の名前の変更時に発生する可能性があります。

文字列を入力しようとすると、'NameError: undefined local variable' Ruby エラーが表示されることもあります。文字列は、引用符の間に存在する場合に理解されます。引用符を使用しなかった場合、Ruby は (存在しない) メソッドまたは変数を参照するつもりであると判断し、エラーをスローします。

したがって、コードを見直して、この変数が参照しているものを確認し、修正してください。同じメソッドで同じ変数名の他のインスタンスを検索することもできます。ある場所で間違っている場合は、他の場所でも間違っている可能性があります。