DiscourseプラグインとRails 6のconfig/initializersに関する質問

これは Rails のコア機能に関する記述であり、Discourse 特有のものではありません。

Rails では、すべてのイニシャライザーは Rails が起動したときのみ読み込まれます。したがって、「after_initializer」のようにイニシャライザーに基づいてコードを実行するプラグインは、Rails の起動時または再起動時のみ実行されます(もし誤りであればご指摘ください)。

私がこれに詳しい理由は、現在クライアント向けに Rails アプリケーションを構築しており、さまざまなタスク(ブーリアン値、静的配列など)のために多くのイニシャライザーを実装しているからです。いずれの場合も、Rails のイニシャライザー内のコードを変更した場合、新しい値を Rails アプリに反映させるには、Rails を再起動する必要があります(開発環境では「Control c」を押して「rails s」を実行)。

もし誤りであればご指摘ください!ありがとうございます。

時々、特に Rails アプリケーション全般ではなく主に Discourse プラグインの開発に携わっている方々にとって、「Discourse はこれをやる」「Discourse はあれをやる」といった表現が少し混乱を招くことがあるかもしれません。実際には、Discourse 特有のものではなく、必ずしも Discourse に固有ではない Rails のコア機能や特性について説明している場合があるからです。

Rails 6 は、config/initializers ディレクトリ(およびそのすべてのサブディレクトリ)内のすべてのファイルを、Rails が起動したときのみ読み込みます。同様に(プラグインについては 100% 確信はありませんが)、after_initialize に依存するコードを持つ Discourse プラグインも、Rails の起動時または再起動時のみ Rails アプリによって読み込まれます(どなたか確認していただけませんか?)。これは Rails の起動プロセスの根本的な性質によるものです。

ここで Rails を扱っている方々は、すでにこのことをご存知だと思われます。私自身もこれらの詳細を知り始めたばかりで(専門家になるにはまだ長い道のりがありますが)、現在は毎日 Rails アプリケーションに取り組んでいます。余談ですが、LAMP 開発のバックグラウンドから来ており、Rails が非常に優れている(使いやすく、楽しく作業できる)と感じているため、10 年前から Rails を使い始めていればよかったと今では思います。

今年は Rails の大ファンになり、その道に進ませてくれた Discourse に心から感謝しています。

繰り返しになりますが、もし誤りであればご指摘ください!ありがとうございます。私は Rails の専門家を目指して頑張っています。