Por que o Rails está salvando registros inválidos ?!

Ok, há algumas maneiras de isso acontecer, principalmente se você contornou as validações deliberadamente. Mas você não é um idiota. Você não fez isso. Se você estiver usando o devise, esta pode ser sua resposta …

  • Você está usando o recurso “confirmável” que exige que o usuário confirme seu endereço de e-mail?
  • Você já usou diretamente o método que ele disponibiliza no modelo nomeado confirm?

Aí está o seu problema!

O Devise tem um padrão horrível nesse método para ignorar as validações e forçar o salvamento.

Faça isso ao invés
confirm(ensure_valid: true)