Using topic.destroy(id) to delete illegal content からの議論を続けます:
このトピックがエラーを返してしまうため、削除方法がわかりません。
![]()
このトピックが削除されると、カテゴリも削除されます。
Using topic.destroy(id) to delete illegal content からの議論を続けます:
このトピックがエラーを返してしまうため、削除方法がわかりません。
![]()
このトピックが削除されると、カテゴリも削除されます。
トピックを別のカテゴリに移動してください。このトピックを非表示にしたい場合は、スタッフなどのプライベートカテゴリに移動してください。トピックは、完全に削除されるまでの時間が経過すると、自動的に削除されます。
移動を試みましたが、以下のエラーが表示されました:
メッセージ
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 HOSTS: discuss.noisebridge.info
わかりません。トピックを移動した場合、メッセージを選択して移動する试试看。
トピックのタイトルを単純に編集して、そこでカテゴリを変更してみてください。トピックが削除されている場合は、タイトルを編集するために削除を元に戻す必要があるかもしれません。
トピックのタイトルは編集できましたが、移動や削除はできません。カテゴリを移行しようとすると、一瞬で元に戻るとカテゴリ名が変わってしまうようです。
実際には、そのカテゴリに2つのトピックが存在します。
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: ERROR: 関係 “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
2 つ目のエラー
メッセージ(3 件のレポート)
ActiveRecord::StatementInvalid (PG::UndefinedTable: ERROR: 関係 “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 つ目のエラー
メッセージ
ジョブ例外: PG::UndefinedTable: ERROR: 関係 “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 をセットアップされたのですね?
カテゴリ作成時に必ず「About カテゴリ」の投稿が作成されます。他の投稿は、初期セットアップ時のシステム投稿のようです。もし、初期の特別なカテゴリのいずれかを再利用されたのであれば、より詳しい知識を持つ誰か、例えば @codinghorror またはチームメンバーの誰かの助けが必要かもしれません。
見た限りでは、とても素敵なレイアウトですね。
https://discuss.noisebridge.info/c/about/3 にアクセスすると、2 つのトピックが表示されます。タイトルが「About」のトピックは、「About」カテゴリの「About」トピックであると推測されます。このトピックの元のタイトルはおそらく「About カテゴリについて」だったのでしょう。
Discourse は、サイト上で作成するすべてのカテゴリに対して自動的に「About」トピックを作成します。このトピックを削除してからカテゴリを削除する必要はありません。サイトが正常に動作している場合、カテゴリ内にある他のトピックを削除し、その後カテゴリを削除できるはずです。
もしこれが機能しない場合、About トピックが異常な状態になっている可能性があります。UI 上では返信数が「-1」と表示されており、何らかの問題が発生しているように見えます。おそらく、サイトのバックエンドからこのトピックの最初の投稿を削除してしまったのでしょう。その場合、カテゴリを削除できなくなった場合はお知らせください。解決策を検討いたします。
はい、それは事前に設定されています。すべての投稿を site-feedback タグ付きの一般カテゴリへ移行して、これを削除しようとしています。
カテゴリの削除を試みると、以下が表示されます:
このカテゴリにはトピックが 1 つあるため、削除できません。最も古いトピックは About です。
上記のエラーは参考になりますか? ごフィードバックありがとうございます。
サイトの Rails コンソールから以下のコマンドを実行すると、何が表示されますか?
Category.find 3
問題のあるカテゴリの ID は 3 です。私が知りたいのは、そのカテゴリの topic_id プロパティの値が何であるかです。
#<Category:0x000055cde953bee0
id: 3,
name: “About”,
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ウィキもぜひご覧ください。ここで見つからない情報はこちらにあります。\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(特殊なものではありません)で、トピック数は「About」トピックしか存在しないにもかかわらず1になっています。
このカテゴリには問題がありました。これはサブカテゴリですが、何らかの理由で、そのカテゴリ内の投稿が親カテゴリのリストに表示されませんでした(他のサブカテゴリは正常でした)。そこで、トピックを新しいサブカテゴリに移動させることにしました。これはうまくいきました。ただし、1つのトピックは移動できませんでした。これが原因だと推測し、コンソールからそのトピックを削除しました。
この操作中にカウントが更新されなかったため、この問題が発生しているのだと思います。
この厄介でもはや存在しないカテゴリを、さらに問題を引き起こすことなく削除するにはどうすればよいでしょうか?