ローカルでは動くのに、本番で壊れるプラグイン

こんにちは!主に@angusさんへの質問ですが、どなたか提案があれば大変ありがたいです!

@angusさんのTopic Custom Field PluginのバリエーションをローカルでホストしているDiscourse(バージョン3.4.0.beta3-dev)で作業しており、希望通りに動作していました。本番環境のDiscourse(バージョン3.4.0.beta3-dev)にインストールしたところ、奇妙なことが起こっています。ユーザーが新しい投稿を作成し、カスタムフィールドに入力しても、投稿時に保存またはレンダリングされません。しかし、ユーザーが投稿を編集してから入力を追加すると、保存およびレンダリングされます。これは、コネクタ(おそらくコンポーザーコネクタ)のどこかで壊れていることを示唆していますが、ローカルインスタンスでは完全に機能するため、理由がわかりません。入力をフィルタリングする正規表現があるのですが、これが原因でしょうか?何か提案があれば、大変感謝いたします。ありがとうございます!

「いいね!」 1

抽象的な状況でデバッグするのは難しいので、代わりにいくつかのアドバイスをします。このような問題の答えを見つける鍵は、集中と消去法です。まず、本番環境で問題を再現できるのに開発環境で再現できない理由を突き止めることから始めましょう。

  1. プラグインとテーマは、本番環境と開発環境で全く同じですか?
  2. 同じ種類のユーザー(管理者、モデレーターなど)を使用していますか?
  3. 同じ種類のトピックでアクションを実行していますか?
  4. 同じ速度でアクションを実行していますか?

まずは、開発環境で問題を再現するためにできる限りのことを試してください。もし本当に問題があるなら、それに集中してください。結果が出るか、本番環境と異なる理由を突き止めるまで、それに集中してください。

また、Topic Custom Fieldsプラグインが本番環境での使用を意図されていない理由の一部は、テストがないことです。これを言われるのは好きではないと思いますが、コンポーザーの動作について、受け入れテストを記述すべきです。そうすれば、特定のシナリオで機能するかどうかについて、決定的な答えが得られます。

「いいね!」 1

投稿を作成する際にカスタムフィールドが正しく設定されていない可能性があるため、問題解決の助けになるか分かりませんが、以下にいくつか確認事項を記載します。

コンポーザーが開かれたときに、フィールドにデフォルト値を割り当てていることを確認してください。

また、正規表現フィルター*を一時的に無効にして、検証の問題を引き起こしていないか確認することもできます。最後に、初期保存中にデータに含まれていることをカスタムフィールドが実際に確認してください。

「いいね!」 2