Não é possível excluir esta categoria porque ela tem 1 tópico

Continuando a discussão de Usando topic.destroy(id) para excluir conteúdo ilegal:

Inseguro sobre como remover este tópico, pois ele retorna um erro.

1-topic

Assim que este tópico for removido, a categoria também será removida.

2 curtidas

Mova o tópico para outra categoria. Se deseja que este tópico não seja visível, mova-o para uma categoria privada, como ‘staff’, por exemplo. O tópico será excluído automaticamente após o tempo definido para sua exclusão completa.

Tentei mover, mas vejo: Desculpe, ocorreu um erro.

Resumo

Mensagem

NoMethodError (método não definido revise' para nil:NilClass) lib/topics_bulk_action.rb:101:in block in change_category’
lib/topics_bulk_action.rb:98:in change_category' lib/topics_bulk_action.rb:28:in perform!’
app/controllers/topics_controller.rb:879:in bulk' app/controllers/application_controller.rb:358:in block in with_resolved_locale’
app/controllers/application_controller.rb:358:in with_resolved_locale' lib/middleware/omniauth_bypass_middleware.rb:68:in call’
lib/content_security_policy/middleware.rb:12:in call' lib/middleware/anonymous_cache.rb:354:in call’
config/initializers/100-quiet_logger.rb:23:in call' config/initializers/100-silence_logger.rb:31:in call’
lib/middleware/enforce_hostname.rb:22:in call' lib/middleware/request_tracker.rb:176:in call’

Rastreamento de volta

lib/topics_bulk_action.rb:101:in block in change_category' activerecord (6.0.3.3) lib/active_record/relation/delegation.rb:87:in each’
activerecord (6.0.3.3) lib/active_record/relation/delegation.rb:87:in each' lib/topics_bulk_action.rb:98:in change_category’
lib/topics_bulk_action.rb:28:in perform!' app/controllers/topics_controller.rb:879:in bulk’
actionpack (6.0.3.3) lib/action_controller/metal/basic_implicit_render.rb:6:in send_action' actionpack (6.0.3.3) lib/abstract_controller/base.rb:195:in process_action’
actionpack (6.0.3.3) lib/action_controller/metal/rendering.rb:30:in process_action' actionpack (6.0.3.3) lib/abstract_controller/callbacks.rb:42:in block in process_action’

Ambiente

HTTP HOSTS: discuss.noisebridge.info

2 curtidas

Não tenho certeza. Com a mudança do tópico, se você tentou selecionar as mensagens e mover,

Tente simplesmente editar o título do tópico e alterar a categoria lá. Se o tópico foi excluído, talvez seja necessário recuperá-lo para editar o título.

Consegui editar o título do tópico. Ele não será movido nem excluído. Percebo que a categoria do tópico mudará se eu tentar migrá-lo, mas voltará ao estado original instantaneamente.

Na verdade, há dois tópicos nesta categoria.

https://discuss.noisebridge.info/c/about/3

  1. https://discuss.noisebridge.info/t/post/2
    Não mostra opção de exclusão. Não será movido. Consegui alterar o título do tópico.

    • Este foi anteriormente dividido em um segundo tópico em outra categoria.
  2. Tópico com link quebrado em categoria diferente
    Vejo que esta postagem também não pode ser excluída. Se você tentar excluí-la, ficará vermelha e não fará nada.

  3. https://discuss.noisebridge.info/t/about/1992/1
    Esta é a descrição da categoria. Mostra -1 respostas e não consigo abri-la.
    :( Erro ao tentar carregar. Algo deu errado.

Obrigado pela ajuda!

1 curtida

Certo, estou vendo 3 erros no log. Eles são:

1º erro

Resumo

Mensagem

ActiveRecord::StatementInvalid (PG::UndefinedTable: ERRO: a relação “categories” não existe
LINE 1: SELECT categories.*, t.slug topic_slug FROM “categories” LEF…
^
)
(eval):105:in exec_params' app/models/site.rb:40:in categories’
app/models/site.rb:12:in initialize' app/models/site.rb:113:in new’
app/models/site.rb:113:in json_for' app/controllers/application_controller.rb:552:in preload_anonymous_data’
app/controllers/application_controller.rb:378:in preload_json' app/controllers/application_controller.rb:358:in block in with_resolved_locale’
app/controllers/application_controller.rb:358:in with_resolved_locale' lib/middleware/omniauth_bypass_middleware.rb:68:in call’
lib/content_security_policy/middleware.rb:12:in call' lib/middleware/anonymous_cache.rb:352:in call’
config/initializers/100-quiet_logger.rb:23:in call' config/initializers/100-silence_logger.rb:31:in call’
lib/middleware/enforce_hostname.rb:22:in call' lib/middleware/request_tracker.rb:176:in call’

Backtrace

rack-mini-profiler (2.2.0) lib/patches/db/pg.rb:69:in exec_params' rack-mini-profiler (2.2.0) lib/patches/db/pg.rb:69:in exec_params’
(eval):105:in exec_params' activerecord (6.0.3.3) lib/active_record/connection_adapters/postgresql_adapter.rb:675:in block (2 levels) in exec_no_cache’
activesupport (6.0.3.3) lib/active_support/dependencies/interlock.rb:48:in block in permit_concurrent_loads' activesupport (6.0.3.3) lib/active_support/concurrency/share_lock.rb:187:in yield_shares’
activesupport (6.0.3.3) lib/active_support/dependencies/interlock.rb:47:in permit_concurrent_loads' activerecord (6.0.3.3) lib/active_record/connection_adapters/postgresql_adapter.rb:674:in block in exec_no_cache’
activerecord (6.0.3.3) lib/active_record/connection_adapters/abstract_adapter.rb:722:in block (2 levels) in log' activesupport (6.0.3.3) lib/active_support/concurrency/load_interlock_aware_monitor.rb:26:in block (2 levels) in synchronize’

Env

HTTP HOSTS: discuss.noisebridge.info

2º erro

Resumo

Mensagem (3 cópias relatadas)

ActiveRecord::StatementInvalid (PG::UndefinedTable: ERRO: a relação “categories” não existe
LINE 1: SELECT categories.*, t.slug topic_slug FROM “categories” LEF…
^
)
(eval):105:in exec_params' app/models/site.rb:40:in categories’
app/models/site.rb:12:in initialize' app/models/site.rb:113:in new’
app/models/site.rb:113:in json_for' app/controllers/application_controller.rb:552:in preload_anonymous_data’
app/controllers/application_controller.rb:378:in preload_json' app/controllers/application_controller.rb:358:in block in with_resolved_locale’
app/controllers/application_controller.rb:358:in with_resolved_locale' lib/middleware/omniauth_bypass_middleware.rb:68:in call’
lib/content_security_policy/middleware.rb:12:in call' lib/middleware/anonymous_cache.rb:352:in call’
config/initializers/100-quiet_logger.rb:23:in call' config/initializers/100-silence_logger.rb:31:in call’
lib/middleware/enforce_hostname.rb:22:in call' lib/middleware/request_tracker.rb:176:in call’

Backtrace

rack-mini-profiler (2.2.0) lib/patches/db/pg.rb:69:in exec_params' rack-mini-profiler (2.2.0) lib/patches/db/pg.rb:69:in exec_params’
(eval):105:in exec_params' activerecord (6.0.3.3) lib/active_record/connection_adapters/postgresql_adapter.rb:675:in block (2 levels) in exec_no_cache’
activesupport (6.0.3.3) lib/active_support/dependencies/interlock.rb:48:in block in permit_concurrent_loads' activesupport (6.0.3.3) lib/active_support/concurrency/share_lock.rb:187:in yield_shares’
activesupport (6.0.3.3) lib/active_support/dependencies/interlock.rb:47:in permit_concurrent_loads' activerecord (6.0.3.3) lib/active_record/connection_adapters/postgresql_adapter.rb:674:in block in exec_no_cache’
activerecord (6.0.3.3) lib/active_record/connection_adapters/abstract_adapter.rb:722:in block (2 levels) in log' activesupport (6.0.3.3) lib/active_support/concurrency/load_interlock_aware_monitor.rb:26:in block (2 levels) in synchronize’

Env

HTTP HOSTS: discuss.noisebridge.info

3º erro

Resumo

Mensagem

Exceção de Job: PG::UndefinedTable: ERRO: a relação “application_requests” não existe
LINE 1: SELECT “application_requests”.“id” FROM "application_request…
^

Backtrace

/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rack-mini-profiler-2.2.0/lib/patches/db/pg.rb:69:in exec_params' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rack-mini-profiler-2.2.0/lib/patches/db/pg.rb:69:in exec_params’
(eval):100:in exec_params' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/connection_adapters/postgresql_adapter.rb:675:in block (2 levels) in exec_no_cache’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.3/lib/active_support/dependencies/interlock.rb:48:in block in permit_concurrent_loads' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.3/lib/active_support/concurrency/share_lock.rb:187:in yield_shares’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.3/lib/active_support/dependencies/interlock.rb:47:in permit_concurrent_loads' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/connection_adapters/postgresql_adapter.rb:674:in block in exec_no_cache’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/connection_adapters/abstract_adapter.rb:722:in block (2 levels) in log' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.3/lib/active_support/concurrency/load_interlock_aware_monitor.rb:26:in block (2 levels) in synchronize’

1 curtida

Se eu tivesse que adivinhar, você configurou seu Discourse recentemente?

Sempre há uma postagem na “Categoria Sobre” criada no momento da criação da categoria. A outra postagem parece ser uma das postagens iniciais do sistema de configuração. Se você reutilizou uma das categorias especiais iniciais.

Pode ser necessário alguém com mais conhecimento. @codinghorror ou um dos membros da equipe.

Pelo que vi, você tem um layout bem agradável.

1 curtida

Quando eu acesso https://discuss.noisebridge.info/c/about/3, vejo dois tópicos. Minha suposição é de que o tópico com o título ‘About’ é o tópico ‘About’ da categoria About. O título original do tópico provavelmente era ‘Sobre a categoria About’.

O Discourse cria automaticamente um tópico ‘About’ para cada categoria que você cria no site. Esse tópico não precisa ser excluído antes que você possa excluir a categoria. Se tudo estiver funcionando corretamente no seu site, você deverá conseguir excluir o outro tópico que está na categoria e, em seguida, excluir a categoria.

Se isso não estiver funcionando para você, é possível que o tópico About tenha entrado em um estado estranho — ele está sendo exibido na interface como tendo -1 respostas, o que sugere que algo deu errado com ele. Possivelmente, você excluiu a primeira postagem do tópico pelo backend do seu site. Se for esse o caso e você agora não conseguir excluir a categoria, avise-nos e tentaremos encontrar uma solução.

3 curtidas

Sim, ela já vem pré-seedada. Estou tentando me livrar dela transferindo todas as postagens para nossa categoria geral com a tag site-feedback.

Quando tento excluir a categoria, vejo:

Não é possível excluir esta categoria porque ela possui 1 tópico. O tópico mais antigo é Sobre.

Esses erros mencionados acima são úteis? Obrigado pelo feedback.

2 curtidas

O que você vê ao executar o seguinte no console Rails do seu site:

Category.find 3

O ID da categoria com o problema é 3. O que estou querendo saber é qual é o valor da propriedade topic_id para essa categoria.

2 curtidas
Category.find 3 rails output

#<Category:0x000055cde953bee0
id: 3,
name: “Sobre”,
color: “231F20”,
topic_id: 2,
topic_count: 1,
created_at: Qui, 06 Dez 2018 07:19:46 UTC +00:00,
updated_at: Qui, 31 Dez 2020 05:33:14 UTC +00:00,
user_id: -1,
topics_year: 1,
topics_month: 0,
topics_week: 0,
slug: “sobre”,
description: “Tudo sobre o uso do Discuss e como adicionar suas sugestões para melhorá-lo.”,
text_color: “Ff0000”,
read_restricted: false,
auto_close_hours: nil,
post_count: 0,
latest_post_id: 9231,
latest_topic_id: 1992,
position: 1,
parent_category_id: nil,
posts_year: 0,
posts_month: 0,
posts_week: 0,
email_in: nil,
email_in_allow_strangers: false,
topics_day: 0,
posts_day: 0,
allow_badges: true,
name_lower: “sobre”,
auto_close_based_on_last_post: false,
topic_template:
“## Curioso sobre nosso fórum? Quer saber mais?\nCertifique-se de consultar nossa wiki para qualquer informação que não encontrar aqui.\n\n@help entrará em contato com nossos voluntários prestativos. :smiling_face_with_three_hearts: \n@staff entrará em contato com todos os moderadores e administradores. Lembre-se, eles são voluntários. :thank_you: \n\nSe você está procurando ajuda em um projeto, verifique nossa categoria #projects.”,
contains_messages: nil,
sort_order: “”,
sort_ascending: nil,
uploaded_logo_id: 1349,
uploaded_background_id: nil,
topic_featured_link_allowed: true,
all_topics_wiki: true,
show_subcategory_list: false,
num_featured_topics: 5,
default_view: “”,
subcategory_list_style: “rows_with_featured_topics”,
default_top_period: “all”,
mailinglist_mirror: false,
minimum_required_tags: 0,
navigate_to_first_post_after_read: false,
search_priority: 0,
allow_global_tags: false,
reviewable_by_group_id: nil,
required_tag_group_id: nil,
min_tags_from_required_group: 1,
read_only_banner: “”,
default_list_filter: “all”>

topic_id 2

1 curtida

Tenho o mesmo problema. Meu ID de categoria é 89 (então não é um número estranho), e a contagem de tópicos é 1, apesar de ter apenas um tópico sobre “Sobre”.

A categoria me deu problemas. Ela é uma subcategoria e, por algum motivo, nenhuma de suas postagens aparecia na lista da categoria principal (as outras subcategorias estavam funcionando). Então, decidi mover os tópicos para uma nova subcategoria, o que funcionou bem. Um tópico não pôde ser movido. Acredito que esse era o culpado, então o excluí via console.

Estou supondo que a contagem não tenha sido atualizada durante esse processo, deixando-me com esse problema.

Como você sugere que eu remova essa categoria chata e agora inexistente sem causar mais problemas?

3 curtidas