Dentro Rubi, você não precisa declarar variáveis, mas precisa atribuir algo a elas antes que possam ser referidas.
Se você está se referindo a um variável local que ainda não existe, você pode ver um dos dois erros.
Mensagens de erro
NameError: variável local indefinida ou método `a 'para #
NameError: variável local indefinida ou método `a 'para main: Object
Nota: Pode haver vários identificadores no lugar de 'uma' acima.
Este é um exemplo em que o código irá gerar a mensagem Ruby "NameError", pois a variável uma ainda não foi atribuído a nada:
coloca um
Como corrigir o erro
As variáveis devem ser atribuídas antes de poderem ser usadas. Portanto, usando o exemplo acima, corrigir o erro é tão simples quanto fazer isso:
a = 10. coloca um.
Por que você está recebendo esse erro
A resposta óbvia é que você está se referindo a uma variável que ainda não foi criada. Isso geralmente ocorre devido a erros de digitação, mas pode ocorrer ao refatorar o código e renomear variáveis.
Você também pode ver o erro Ruby "NameError: variável local indefinida" se pretender inserir uma sequência. As strings são entendidas quando existem entre aspas. Se você não usou aspas, Ruby pensará que você pretendeu referenciar um método ou variável (que não existe) e lançará o erro.
Portanto, revise seu código para ver a que essa variável deve se referir e corrija-a. Você também pode procurar outras instâncias com o mesmo nome de variável no mesmo método - se estiver errado em um lugar, poderá estar errado em outros.