# Múltiplas entradas repetidas de resumo por e-mail

**URL:** <https://meta.discourse.org/t/multiple-repeated-summary-mail-entries/296539>\
**Category:** Bug\
**Tags:** activity-summary, fixed\
**Created:** [23 Fevereiro , 2024 20:38 UTC](https://meta.discourse.org/t/multiple-repeated-summary-mail-entries/296539 "2024-02-23T20:38:35Z")\
**Posts on this page:** 1\
**Showing post:** 30

<div class="post-metadata">

**Author:** ![simon](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/simon/32/339122_2.png) [@simon](https://meta.discourse.org/u/simon)\
**Post date:** [25 Setembro , 2024 20:47 UTC](https://meta.discourse.org/t/multiple-repeated-summary-mail-entries/296539/30 "2024-09-25T20:47:55Z")

</div>

> [@ToddZ](#):
>
> tags de supressão de digest – uma tag privada (parece estar corretamente suprimida do digest

> [@ToddZ](#):
>
> Em minhas amostras recentes, a duplicação corresponde ao número de tags em um tópico.

Consegui reproduzir o problema em meu site Discourse local adicionando uma tag à configuração do site `digest suppress tags` e, em seguida, criando um tópico com várias tags.

O código a seguir causa o problema: [discourse/app/models/topic.rb at main · discourse/discourse · GitHub](https://github.com/discourse/discourse/blob/main/app/models/topic.rb#L605-L614)

```ruby
    if SiteSetting.digest_suppress_tags.present?
      tag_ids = Tag.where_name(SiteSetting.digest_suppress_tags.split("|")).pluck(:id)
      if tag_ids.present?
        topics =
          topics.joins("LEFT JOIN topic_tags tg ON topics.id = tg.topic_id").where(
            "tg.tag_id NOT IN (?) OR tg.tag_id IS NULL",
            tag_ids,
          )
      end
    end

```

Editar: Não acho que um `LEFT JOIN` seja necessário aqui. As colunas da tabela `topic_tags` unida não parecem ser usadas posteriormente no método. A correção pode ser tão simples quanto:

```ruby
if SiteSetting.digest_suppress_tags.present?
tag_ids = Tag.where_name(SiteSetting.digest_suppress_tags.split("|")).pluck(:id)
  if tag_ids.present?
  topics =
    topics.where.not(id: TopicTag.where(tag_id: tag_ids).select(:topic_id))
  end
end

```

Deixarei para a equipe do Discourse descobrir a melhor abordagem. O método `for_digest` é executado muitas vezes e precisa ser eficiente.

---

_[View the full topic](https://meta.discourse.org/t/multiple-repeated-summary-mail-entries/296539)._
