Isso pode surgir de um mal-entendido sobre como o banco de dados é acessado via Ruby (ActiveRecord?) versus Rails, mas estou vendo uma mensagem de erro incomum ao executar uma tarefa rake.
A mensagem de erro se repete várias vezes com diferentes IDs de post, semelhante a isto:
Falha ao atualizar post (topic_id: , post_id: 46367)
A mensagem de erro está vindo desta linha na tarefa rake posts:refresh_emails:
Algo comum a todos os posts que desencadeiam esse erro é que o post está dentro de um tópico excluído. Não conseguir fazer algo com ele não é totalmente inesperado, mas o que acho curioso é que, ao consultar esse ID de post no Rails, vejo que ele tem um topic_id definido, mas aquela linha puts falha ao obtê-lo.
[1] pry(main)> Post.where(id: 46367)
=> [#<Post:0x000055e95558ad10
id: 46367,
user_id: 3372,
topic_id: 4225,
...
raw_email:
"<algum e-mail válido>",
...
Passei o código um pouco e a única explicação óbvia que encontrei para um erro ser levantado e imprimir essa mensagem é se também não foi possível obter raw_email na linha 290, o que faria Email::Receiver levantar durante a inicialização.
Isso vem de não estar familiarizado com Ruby e não ter investigado profundamente o revise(), embora possa haver facilmente outros lugares que possam levantar erros por outras razões.
De qualquer forma, estou um pouco confuso sobre por que está falhando nesses posts; parece que essa tarefa rake deveria ser capaz de operar em posts que fazem parte de tópicos excluídos, incluindo o primeiro post. Especialmente considerando que um membro da equipe pode reativar o tópico sem saber que tal tarefa ocorreu, quanto mais que ela não se aplicou a esse tópico específico.
No meu caso, não preciso fazer nada com esses tópicos excluídos e sei que eles não serão reativados, então não estou procurando uma solução, apenas quis chamar a atenção de alguém. Talvez seja algo, talvez não seja nada.