Plugins Discourse et configuration Rails 6 config/initializers Question

Cela décrit une propriété fondamentale de Rails, qui n’est pas spécifique à Discourse.

Dans Rails, tous les initialisateurs ne sont chargés qu’au démarrage de Rails. Ainsi, tout plugin exécutant du code basé sur un initialiseur, comme after_initialize, ne s’exécutera qu’au démarrage ou au redémarrage de Rails (corrigez-moi si je me trompe).

La raison pour laquelle je connais cela est que je développe actuellement une application Rails pour un client et que j’ai écrit de nombreux initialisateurs pour diverses tâches (valeurs booléennes, tableaux statiques, etc.). Dans chaque cas, si nous modifions du code dans un initialiseur Rails, il est nécessaire de redémarrer Rails (“Control c, rails s en mode dev”) pour que les nouvelles valeurs des initialisateurs soient prises en compte par l’application Rails.

Veuillez me corriger si je me trompe ! Merci.

Parfois, je pense que cela peut prêter à confusion pour certains développeurs de plugins Discourse, en particulier ceux qui travaillent principalement sur des plugins Discourse et non sur des applications Rails en général, lorsque nous écrivons « Discourse fait ceci » ou « Discourse fait cela », alors que ce que nous décrivons réellement est une fonction ou une propriété fondamentale de Rails, pas nécessairement spécifique à Discourse en soi.

Rails 6 lit tous les fichiers du répertoire config/initializers (et de tous les sous-répertoires config/initializers) uniquement au démarrage de Rails. De même (je ne suis pas à 100 % sûr pour les plugins), un plugin Discourse dont le code dépend de after_initialize sera (confirmez-le s’il vous plaît) chargé par l’application Rails uniquement au démarrage ou au redémarrage de Rails, car il s’agit d’une propriété fondamentale du processus de démarrage de Rails.

Je suppose que tout le monde ici qui travaille sur Rails le sait déjà. Je commence seulement à connaître ces détails (et je sens que j’ai encore un long chemin à parcourir pour devenir un expert) ; car je travaille quotidiennement sur une application Rails en ce moment, et par ailleurs, je regrette maintenant de ne pas avoir commencé à travailler avec Rails il y a dix ans, car venant d’un background de développement LAMP, je trouve Rails bien supérieur (facile et agréable à utiliser).

Je suis devenu un grand fan de Rails cette année et je suis très reconnaissant envers Discourse de m’avoir lancé sur cette voie.

Encore une fois, veuillez me corriger si je me trompe ! Merci. J’essaie de devenir plus expert en Rails.