继续讨论 使用 topic.destroy(id) 删除非法内容:
不确定如何删除此主题,因为它返回了错误。
![]()
一旦此主题被删除,该分类也将被移除。
将主题移至其他分类。如果您希望此主题不可见,可将其移至私密分类(例如“员工”分类)。主题将在您设定的时间到期后自动删除。
尝试移动,但显示:抱歉,发生了一个错误。
消息
NoMethodError(nil:NilClass 未定义方法 revise') 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/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 主机: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 个错误。它们分别是:
第 1 个错误
消息
ActiveRecord::StatementInvalid (PG::UndefinedTable: 错误:关系 “categories” 不存在
第 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
第 2 个错误
消息(报告了 3 份副本)
ActiveRecord::StatementInvalid (PG::UndefinedTable: 错误:关系 “categories” 不存在
第 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 个错误
消息
作业异常:PG::UndefinedTable: 错误:关系 “application_requests” 不存在
第 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 时,我看到了两个主题。我推测标题为“关于”的主题就是“关于”分类下的“关于”主题。该主题的原始标题可能是“关于‘关于’分类”。
Discourse 会自动为您在网站上创建的每个分类生成一个“关于”主题。在删除分类之前,无需先删除此“关于”主题。如果您的网站一切运行正常,您应该能够先删除该分类中的另一个主题,然后再删除整个分类。
如果此操作对您无效,可能是因为“关于”主题进入了异常状态——它在界面中显示为有 -1 条回复,这表明它可能出现了问题。也许您已从网站后端删除了该主题的首个帖子。如果是这种情况,且您现在无法删除该分类,请告知我们,我们将尽力提供解决方案。
是的,它是预置的。我试图通过将带有 site-feedback 标签的所有帖子转移到我们的通用分类中来移除它。
当我尝试删除该分类时,我看到:
无法删除此分类,因为它包含 1 个主题。最旧的主题是 关于。
上面链接的这些错误信息有帮助吗? 感谢反馈。
在你的站点的 Rails 控制台中运行以下命令会看到什么:
Category.find 3
有问题的分类 ID 是 3。我想知道的是该分类的 topic_id 属性的值是什么。
#<Category:0x000055cde953bee0
id: 3,
name: “关于”,
color: “231F20”,
topic_id: 2,
topic_count: 1,
created_at: 2018-12-06 07:19:46 UTC +00:00,
updated_at: 2020-12-31 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请务必查看我们的 wiki,查找您在此处无法找到任何信息。\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(所以不是那种奇怪的 ID),尽管只有一个“关于”主题,但主题计数却显示为 1。
这个分类给我带来了麻烦。它是一个子分类,不知为何,其下的所有帖子都没有出现在父分类列表中(其他子分类则正常)。因此,我决定将这些主题移动到一个新的子分类中,操作很顺利。但有一个主题无法移动。我推测这就是罪魁祸首,于是通过控制台将其删除了。
我猜在进行这些操作时,计数并未更新,从而导致了我现在遇到的问题。
您建议我如何移除这个烦人且现已失效的分类,而不会引发其他问题?