Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Erro 500 após inserir o <select> da aula 13 e tentar cadastrar produto que não passa na validação do formulário

Fiz alterações da aula 13 no meu código, e embora o "caminho feliz", os casos que deveriam mostrar erro de validação de formulário (nome muito curto ou algum campo não preenchido), retornando a página de criar produto com erro, passou a dar exceção disparando erro 500.

Eu até achei que tinha a ver com o @produto ter inicialmente o valor de departamento_id = nil, mas tentei forçar um valor pra testar e não funcionou.

A mensagem de erro no navegador e no console é NoMethodError in Produtos#create, (...)undefined method `map' for nil:NilClass. E mostra marcada a linha do f.collection_select.

Esqueci algo, ou o código apresentado no curso está dando erro neste ponto mesmo?

2 respostas
solução!

é que quando volta para a página a coleção esta vazia de departamentos, tenta um @departamentos = Departamento.all no caminho triste (acho que era assim o código),em algum video futuro eu lembro que ele corrige isso.

deu certo. Pelo visto uma instância do controller é criada a cada request, então no momento que está executando o create ele não vai ter mais a variável @departamentos criada no método new porque já é outra instância.