新しいトピックが未分類にデフォルト設定されない

こんにちは。

ユーザー(「リーダー」ロール)が新しいトピックを作成しようとすると、カテゴリが空白になり、トピック作成ボタンをクリックすると404エラーが発生します。

スタッフである私が新しいトピックを作成しようとすると、カテゴリは空白のままですが、「無効なパラメータがリクエストに渡されました: category」というエラーが表示されます。

設定を見つけました。

カテゴリなしでトピックを作成できるようにする。警告: カテゴリなしのトピックがある場合は、オフにする前に再分類する必要があります。

有効にした記憶はありませんが、有効になっています。デフォルトだと思いますが、確信はありません。

カテゴリなしのカテゴリ設定を確認しました。

このカテゴリは特別です。カテゴリが選択されていない新しいトピックのデフォルトカテゴリとして使用されます。この動作を防ぎ、カテゴリの選択を強制する場合は、こちらで設定を無効にしてください。名前または説明を変更する場合は、カスタマイズ / テキストコンテンツに移動してください。

当面、ユーザーが不快な経験をして投稿できないことを心配しています(404エラー)。

meta.discourse.orgで質問への回答を探しました。

質問1:新しいトピックを作成しようとすると、カテゴリフィールドが空白になるのはなぜですか? (meta.discourse.orgに投稿するときは空白ではありません)

質問2:「カテゴリなしでトピックを作成できるようにする」が有効になっている場合、なぜエラーが発生するのですか? (「カテゴリなし」は実際には「カテゴリなし」を意味すると思いますが、それは「カテゴリが選択されていない新しいトピックのデフォルトカテゴリ」と説明されています。

meta.discourse.orgの動作は気に入っています。カテゴリなしではなく「一般」にデフォルト設定されますが、どちらが正しいアプローチかわかりません。
a) 「カテゴリなし」を「一般」に名前変更する。(注:2016年の投稿で、これが悪いアイデアであり、「カテゴリなし」をデータベースの「null」と同等に扱っていることが示されていました。)
または
b) 「一般」カテゴリを作成し、すべてのカテゴリなしトピックを「一般」に移動し(方法?)、新しい投稿のデフォルトとして「一般」を設定し、「カテゴリなしでトピックを作成できるようにする」を無効にする。

アドバイスや関連ドキュメントへのポインタがあれば幸いです。

よろしくお願いいたします。

Stephen

追伸:ちなみに、私たちはOSSプロジェクトであり、これはhttps://www.discourse.orgの親切な人々によって提供された無料のDiscourseインスタンスです

これも気づきました。しかし、未分類を無効にしましたが、その場合はトップカテゴリが選択されるはずです。デフォルトと同じ(空の)カテゴリフィールドが表示されています。

「いいね!」 1

@MarcPさん、ありがとうございます!

これはバグかもしれないと思いますが、早計したくありませんでした。

スティーブンさん

あなたのサイトはどのバージョンのDiscourseを実行していますか?

最近、「未分類」の「カテゴリ」が新しい一般的なカテゴリに置き換えられました。あなたのサイトにその名前の新しいカテゴリが表示されましたか?以前に一般的なカテゴリを持っていましたか?

はい、以前は一般的なカテゴリがありました。最新のビルドを実行していますが、数週間前から気づいています。

はい、私も最近同様の動作が発生しているようです。

このコミットで修正されるはずでしたが、サイトにはすでに適用されているようです。

すべてのケースをカバーできていない可能性があります。担当者が確認します。:+1:

「いいね!」 5

うーん、allow uncategorized topics を有効にすると、カテゴリページに未分類カテゴリが表示されたままになります。一般カテゴリの名前を変更した後でもです。

Uncategorized カテゴリは、Discourse で General カテゴリが有効になって以降、デフォルトのサイト設定ではなくなりました。新しい Discourse のインストールでは、デフォルトで General カテゴリが用意されています。そのため、コンポーザーを開くと、自動的に General カテゴリが選択されます。しかし、General カテゴリがない古いインストールでは、任意のカテゴリを General カテゴリにすることができます。これは、この場合、コンポーザーのデフォルトカテゴリを意味するだけだと思います。そのため、General という名前のカテゴリを作成しても十分ではありません。非表示のサイト設定 general_category_id でカテゴリ ID を設定する必要があります。

例:
この General 目的で新しいカテゴリを作成する場合。カテゴリ名はたとえば General とし、カテゴリ ID も確認する必要があります。この例では 9 になります。

カテゴリは正常に作成されましたが、コンポーザーを開いてもデフォルトのカテゴリにならないため、非表示のサイト設定を設定しましょう。

category_id を General カテゴリに設定

注:category_id=9 は、この例でのみ正しいカテゴリ ID です。新しく作成したカテゴリには、おそらく異なる category_id 番号が付けられています。

cd /var/discourse
./launcher enter app
rails c
SiteSetting.general_category_id=9
exit
exit

これにより、コンポーザーを開くと category_id=9General カテゴリがデフォルトになります。

「いいね!」 2

一般をリネームしてから再構築しましたか?

generalの名前は変更していません。「uncategorized」のみがあり、名前は変更していません。

Discourse updated: 14 hours ago

@Don

ありがとうございます。これはホストされたインスタンスなので、非表示のサイト設定を行うためのシェルアクセスを取得する方法はわかりません。

よろしくお願いいたします。

Stephen

「いいね!」 1

ほとんどのチームメンバーは週末ですが、誰かが利用可能になり次第、すぐに修正できます。:slightly_smiling_face::+1:

「いいね!」 4

混乱を最小限に抑えるために、念のため確認させてください。

  1. 準備として「一般」カテゴリを作成する必要がありますか?
  2. 設定変更後、「未分類」カテゴリのすべてのトピックを「一般」に移動する必要がありますか?

ご協力ありがとうございます。

Stephen

この結果を目指しているのであれば、#uncategorized の代わりに #general をデフォルトにするために、新しい #general カテゴリを作成し、バルクツールを使用して #uncategorized のすべてのトピックをそこに移動し、その後、管理設定で allow uncategorized topics を無効にすることをお勧めします(ただし、これによりドロップダウンは修正されません)。

ただし、これはチームメンバーが数分で修正できるものであり、非表示の general_category_id 設定を手動で更新することも含まれるため、待つだけでもよいでしょう。:slightly_smiling_face:

「いいね!」 4

ありがとうございます。この説明は非常に良く、解決できました。これはバグではないので、このトピックは#supportにあるべきだと思います。また、あなたの返信は解決策としてマークされるべきだと提案します。

「いいね!」 1

理解のために確認させてください

  • 新しいディスコースインスタンスには、新しいトピックを投稿する際のデフォルトとなる「General」カテゴリがあります。

  • 私たちのインスタンスは、デフォルトが「uncategorised」カテゴリだった時代から来ています。
    この修正は、SiteSetting.general_category_id を「Uncategorised」カテゴリIDに設定することです。

このコマンド:

SiteSetting.general_category_id=<新しいカテゴリID>

  • 「Uncategorised」カテゴリがまだ存在するインスタンスは、アップグレード時に上記のセッティングを設定する必要があります。
「いいね!」 1

すべて解決しました。「未分類」の代わりに「一般」を使用するように変更したところ、システムがデフォルトのカテゴリを正しく提供するようになりました。

この問題を診断するのに協力してくれたすべての人に感謝します。特に、この問題を迅速かつプロフェッショナルに解決してくれた @fzngagan に感謝します。

敬具

Stephen

「いいね!」 5

この修正前に誤って「General」カテゴリを削除した方へ

存在しないカテゴリに SiteSetting.general_category_id が設定されている場合、それをクリーンアップする追加の修正が行われました。

「いいね!」 3