Erros comuns

Os problemas que mais aparecem durante o projeto Mural de recados, e como resolver. Antes de corrigir, lembre: vários erros aparecem de propósito no guia, para a participante aprender a ler a mensagem. Confira nas notas de cada capítulo se o erro faz parte do caminho.

Problemas de ambiente

O que aparece Causa provável Como resolver
“Corrigi e o erro continua” O arquivo não foi salvo. No editor, a aba de um arquivo não salvo tem uma bolinha no lugar do X. Salve com Cmd+S ou Ctrl+S e recarregue a página.
A página não muda depois de mudar o visual O navegador guardou a versão antiga. Recarregue com Cmd+Shift+R (Mac) ou Ctrl+Shift+R (Windows e Linux).
O primeiro codespace demora para abrir O computador na nuvem está sendo preparado. Esperar. Só acontece na primeira vez.
A página do app não abre, ou dá erro de conexão O servidor está desligado. Ligar com bin/rails server. Se o codespace dormiu, ele desliga o servidor junto.
O aviso Open in Browser sumiu O aviso só aparece uma vez. Abrir pela aba Ports, no ícone de globo da porta 3000.
Um comando digitado não faz nada Foi digitado no terminal do servidor, que está ocupado. Abrir um terminal novo pelo botão + do painel do terminal.
rails: command not found O codespace não foi criado pelo modelo do Rails Girls SP, ou ainda está terminando de preparar. Esperar uns minutos e abrir um terminal novo. Se continuar, conferir se o repositório veio do modelo.
Blocked hosts O codespace foi criado sem o modelo. Ver “Erro Blocked hosts” nas notas do capítulo 01.
InvalidAuthenticityToken ou HTTP Origin header didn't match ao enviar um formulário A proteção de formulários do Rails estranha o endereço do Codespaces. Ver o passo 9 do capítulo 04 e as notas do capítulo 04. Depois de mudar o development.rb, reiniciar o servidor.
Os recados sumiram O codespace é novo: o banco de dados não vai para o GitHub. Rodar bin/rails db:migrate e postar recados de novo. Ver as notas do capítulo 02.
O commit não aparece no GitHub Faltou o Sync Changes. No painel Source Control, clicar em Sync Changes.
❌ vermelho e pull requests automáticos no GitHub O GitHub Actions e o Dependabot, que o rails new configura. Pode ignorar. Ver as notas do capítulo 01.
O mural de recados ficou escuro Falta o data-theme="light" no layout, e o computador está no modo escuro. Ver o passo 2 do capítulo 06.
Mudou um arquivo da pasta config e nada mudou Esses arquivos só são lidos quando o servidor liga. Desligar o servidor com Ctrl+C e ligar de novo com bin/rails server.

Problemas de código

Mensagem de erro (ou sintoma) Causa provável Onde aparece
NameError: uninitialized constant Message (no console) message com m minúsculo, ou o model ainda não foi criado. Capítulo 02
no such table: messages, ou a página PendingMigrationError A migration ainda não rodou. Capítulos 02 e 07
unknown attribute 'title' for Message O nome de uma coluna está errado. Capítulo 02 (de propósito, no “Quebre de propósito”)
No route matches [GET], [POST], [PATCH] ou [DELETE] Falta a rota, ou a ação não está no only do resources. Capítulos 03, 04 e 05 (de propósito)
uninitialized constant MessagesController O controller não existe, ou o nome está diferente (precisa ser Messages, no plural). Capítulo 03 (de propósito)
Unknown action: The action '…' could not be found A ação não existe, ou está escrita depois do private. Capítulos 04 e 05 (de propósito)
No view template for interactive request Falta a view da ação. Capítulos 04 e 05 (de propósito)
undefined method 'each' for nil ou undefined method 'empty?' for nil Falta o @, ou o controller não preparou a variável (por exemplo, um render :index no create, no lugar de render :new). Capítulos 03 e 07
Passed nil to the :model argument Falta o @message = Message.new na ação new. Capítulo 04
undefined local variable or method 'new_message_path' Falta o :new na rota. Capítulo 04 (de propósito)
param is missing or the value is empty Os campos do formulário não batem com o message_params. Capítulo 04
undefined method 'edit_message_path' Falta o :edit na rota. Capítulo 05
undefined method 'message_path' ao abrir a correção Falta o :update na rota: o formulário de correção não tem para onde enviar. Capítulo 05 (de propósito)
Couldn't find Message with 'id'=… O número no endereço não é de nenhum recado. Capítulo 05
syntax error apontando para o fim do arquivo Falta um end (de um def, de um if ou de um do), ou sobra um. Qualquer capítulo, principalmente o 07
O conteúdo não aparece, sem erro <% %> no lugar de <%= %>. Capítulos 03 e 04
A cor escolhida não é guardada, sem erro Falta a :color no message_params. Desafio extra “Cores nos recados” (de propósito)
Clicou num botão de formulário (Postar recado, Salvar, Apagar) e nada aconteceu na tela O erro de um formulário não aparece no navegador, só no terminal do servidor. Se lá também não tiver erro: falta o redirect_to no create, ou falta o status: :unprocessable_entity no render. Capítulos 04, 05 e 07
Os avisos aparecem em inglês (can't be blank) Falta o message: na validação. Capítulo 07

Quando nada disso resolve

  • Leia a mensagem de erro inteira, junto com a pessoa. A primeira linha costuma dizer o que aconteceu, e o nome do arquivo e o número da linha dizem onde.
  • Compare com o código do guia, linha por linha. A maioria dos erros é uma letra, um end ou um @.
  • Volte para o último commit se a confusão ficou grande. No painel Source Control, dá para descartar as mudanças de um arquivo e começar o passo de novo.
  • Chame outra pessoa da mentoria. Dois pares de olhos acham mais rápido, e a participante vê que pedir ajuda é normal, mesmo para quem já programa.

Notas dos projetos

Para as confusões de cada capítulo, veja as Notas dos projetos.


Material de Rails Girls São Paulo, licenciado sob CC BY-NC-SA 4.0. Uso livre e gratuito com atribuição; uso comercial proibido.

This site uses Just the Docs, a documentation theme for Jekyll.