Продолжение обсуждения из темы Использование topic.destroy(id) для удаления запрещённого контента:
Не уверен, как удалить эту тему, так как возвращается ошибка.
![]()
После удаления этой темы категория также будет удалена.
Продолжение обсуждения из темы Использование topic.destroy(id) для удаления запрещённого контента:
Не уверен, как удалить эту тему, так как возвращается ошибка.
![]()
После удаления этой темы категория также будет удалена.
Переместите тему в другую категорию. Если вы хотите, чтобы эта тема не была видна, переместите её в приватную категорию, например, «Персонал». Тема будет автоматически удалена по истечении заданного вами времени.
Попытка перемещения не удалась: Извините, произошла ошибка.
Сообщение
NoMethodError (неопределенный метод revise' для 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’
Трассировка стека
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/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’
Окружение
HTTP HOSTS: discuss.noisebridge.info
Не уверен. При перемещении темы, если вы пытались выбрать сообщения и переместить их…
Попробуйте просто отредактировать заголовок темы и изменить категорию там. Если тема была удалена, возможно, вам потребуется восстановить её, чтобы отредактировать заголовок.
Мне удалось отредактировать заголовок темы. Однако её нельзя переместить или удалить. Я заметил, что категория темы меняется, если я пытаюсь перенести её, а затем сразу же отменяю действие через мгновение.
На самом деле в этой категории находятся две темы.
https://discuss.noisebridge.info/c/about/3
https://discuss.noisebridge.info/t/post/2
Здесь нет опции удаления. Переместить нельзя. Я смог изменить заголовок темы.
Сломанная связанная тема в другой категории
Я вижу, что этот пост тоже нельзя удалить. Если попытаться его удалить, он станет красным, но ничего не произойдёт.
https://discuss.noisebridge.info/t/about/1992/1
Это описание категории. Показывает -1 ответ, и я не могу его открыть.
:( Ошибка при попытке загрузки. Что-то пошло не так.
Спасибо за помощь!
Хорошо, я вижу 3 ошибки в логе. Вот они:
Первая ошибка
Сообщение
ActiveRecord::StatementInvalid (PG::UndefinedTable: ОШИБКА: отношение “categories” не существует
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’
Стек вызовов
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’
Окружение
HTTP HOSTS: discuss.noisebridge.info
Вторая ошибка
Сообщение (3 копии)
ActiveRecord::StatementInvalid (PG::UndefinedTable: ОШИБКА: отношение “categories” не существует
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’
Стек вызовов
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’
Окружение
HTTP HOSTS: discuss.noisebridge.info
Третья ошибка
Сообщение
Исключение задачи: PG::UndefinedTable: ОШИБКА: отношение “application_requests” не существует
LINE 1: SELECT “application_requests”.“id” FROM "application_request…
^
Стек вызовов
/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)
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’
Если мне придется гадать, вы недавно настроили свой Discourse?
При создании категории всегда создается пост «О категории». Другой пост выглядит как один из начальных системных постов настройки. Возможно, вы переиспользовали одну из начальных специальных категорий.
Возможно, потребуется кто-то с более глубокими знаниями. @codinghorror или один из членов команды.
Судя по тому, что я видел, у вас отличный дизайн.
Когда я перехожу по адресу https://discuss.noisebridge.info/c/about/3, я вижу две темы. Я предполагаю, что тема с заголовком «About» — это тема категории «About». Изначальный заголовок темы, вероятно, был «О категории About».
Discourse автоматически создаёт тему «About» для каждой категории, которую вы создаёте на сайте. Эту тему не нужно удалять перед удалением категории. Если на вашем сайте всё работает корректно, вы должны иметь возможность удалить другую тему, находящуюся в категории, а затем удалить саму категорию.
Если у вас это не работает, возможно, тема «About» перешла в некорректное состояние — в интерфейсе она отображается с количеством ответов «-1», что указывает на сбой. Возможно, вы удалили первое сообщение этой темы через бэкенд вашего сайта. Если это так, и вы теперь не можете удалить категорию, сообщите нам, и мы постараемся найти решение.
Да, она предустановлена. Я пытаюсь избавиться от неё, перенеся все посты в нашу общую категорию с тегом site-feedback.
Когда я пытаюсь удалить категорию, я вижу:
Невозможно удалить эту категорию, так как в ней есть 1 тема. Самая старая тема — О категории.
Помогут ли ошибки, указанные выше? Спасибо за обратную связь.
Что вы увидите, если выполните следующую команду в консоли Rails вашего сайта:
Category.find 3
Идентификатор категории с проблемой — 3. Меня интересует, какое значение у свойства topic_id для этой категории.
#<Category:0x000055cde953bee0
id: 3,
name: “О нас”,
color: “231F20”,
topic_id: 2,
topic_count: 1,
created_at: Чт, 06 дек 2018 07:19:46 UTC +00:00,
updated_at: Чт, 31 дек 2020 05:33:14 UTC +00:00,
user_id: -1,
topics_year: 1,
topics_month: 0,
topics_week: 0,
slug: “about”,
description: “Всё об использовании Discuss и о том, как добавлять свои предложения для его улучшения.”,
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: “about”,
auto_close_based_on_last_post: false,
topic_template:
“## Вам интересно о нашем форуме? Хотите узнать больше?\nОбязательно ознакомьтесь с нашей вики для получения любой информации, которую вы не можете найти здесь.\n\n@help свяжется с нашими полезными волонтёрами.
\n@staff свяжется со всеми модераторами и администраторами. Помните, что они — волонтёры. :thank_you: \n\nЕсли вы ищете помощь по проекту, проверьте нашу категорию #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
У меня та же проблема. ID моей категории — 89 (так что это не какой-то странный идентификатор), количество тем — 1, хотя есть только тема «О нас».Эта категория вызывала у меня проблемы. Это подкатегория, и по какой-то причине ни один из её постов не отображался в списке родительской категории (другие подкатегории работали нормально). Поэтому я решил переместить темы в новую подкатегорию, что сработало хорошо. Однако одну тему переместить не удалось. Я предположил, что именно она является причиной проблемы, и удалил её через консоль.Думаю, что счётчик не обновился после этих действий, из-за чего у меня возникла эта проблема.Как вы предлагаете удалить эту надоедливую и теперь уже несуществующую категорию, не вызвав при этом дополнительных проблем?