Reações às vezes não são exibidas quando a contagem de reações está ausente

Isso ocorre porque discourse_reactions_like_sync_enabled está definido como false. Isso foi feito intencionalmente pela migração de maio de 2024 para evitar a interrupção de dados existentes.

Quando essa configuração está desativada, o ReactionLikeSynchronizer não é executado. Este sincronizador é responsável por:

  • Criar registros de PostAction (curtida) para reações
  • Atualizar posts.like_count para refletir as reações

Sem a execução da sincronização:

  1. Reações existem em discourse_reactions_reaction_users
  2. Mas não há registros correspondentes de PostAction
  3. E posts.like_count permanece em 0

Sua intuição sobre o momento está correta - as postagens de 2023/início de 2024 tiveram reações adicionadas quando essa sincronização não estava ativa, então sua like_count nunca foi atualizada. A lógica do serializador antigo então omitiu a ação de curtir inteiramente quando tanto count = 0 QUANTO can_act = false (janela de desfazer expirou).

A correção não corrige a discrepância subjacente dos dados - ela simplesmente garante que a interface do usuário exiba as reações corretamente, mesmo quando os dados de PostAction/like_count não estão sincronizados. Em sites onde discourse_reactions_like_sync_enabled = false, a existência de reações independentemente dos registros de PostAction é o comportamento esperado.

1 curtida