Supressão em massa de tópicos de /latest não funciona como esperado

Olá a todos,

Atualmente, estou usando o plugin Suppress category from latest para ocultar tópicos da página /latest, mas ainda exibi-los dentro de suas respectivas categorias. Tenho cerca de 200 categorias que desejo ocultar de /latest, e apenas cerca de 10 categorias cujos tópicos devem ser exibidos na página inicial.

Para conseguir isso, tentei executar o seguinte código no console Rails:

Category.all.each do |cat|
  cat.custom_fields["suppress_latest"] = true
  cat.save_custom_fields(true)
end

O comando parece ser executado sem erros (ele até retorna {"suppress_latest"=>"t"}), mas quando verifico a página /latest, os tópicos dessas categorias ainda estão visíveis.

Aqui estão as etapas que já tomei:

  • Executei ./launcher rebuild app e ./launcher restart app
  • Confirmei via console Rails que o campo personalizado está definido como "t" para as categorias afetadas
  • Também tentei limpar os caches, mas nada parece mudar

Parece que, mesmo após definir o campo personalizado, os tópicos dessas categorias ainda são exibidos na página inicial. Alguém já passou por esse problema ou encontrou uma maneira eficaz de suprimir tópicos em massa de /latest? Existe algum problema de compatibilidade conhecido com subcategorias, ou o plugin deve usar uma chave/valor diferente para supressão?

Qualquer orientação ou abordagem alternativa seria muito apreciada!

Obrigado!

Uma rápida olhada no core não encontra suppress_latest no código.

Talvez você queira a configuração do site Silenciar todas as categorias por padrão?

1 curtida

Plugin author aqui!

Deveria ser
cat.custom_fields[:suppress_category_from_latest] = true

Mas… esses valores também são armazenados em cache em uma variável de classe. A maneira mais fácil de lidar com isso é save! a categoria também (veja aqui)

Então isso funciona

Category.all.each do |cat|
  cat.custom_fields[:suppress_category_from_latest] = true
  cat.save_custom_fields(true)
  cat.save!
end
4 curtidas

Olá RGJ,

Muito obrigado pela sua orientação. Executei o seguinte comando no meu console Rails:

Category.all.each do |cat|
  cat.custom_fields[:suppress_category_from_latest] = true
  cat.save_custom_fields(true)
  cat.save!
end

Tudo funcionou perfeitamente! Minhas categorias agora estão suprimidas com sucesso da página /latest. Agradeço muito a sua ajuda.

Atenciosamente,

3 curtidas

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.