إضافات Discourse وإعدادات config/initializers لـ Rails 6

هذا يصف خاصية أساسية في Rails، وهي غير ذات صلة مباشرة بـ Discourse.

في Rails، يتم تحميل جميع المهيئات (initializers) فقط عند بدء تشغيل Rails، لذا فإن أي إضافة (plugin) تنفذ كودًا بناءً على المهيئات، مثل “after_initializer”، ستنفذ فقط عند بدء تشغيل Rails أو إعادة تشغيله (أرجو تصحيحي إذا كنت مخطئًا).

السبب في معرفتي بهذا هو أنني أقوم حاليًا ببناء تطبيق Rails لعميل، وقد كتبت العديد من المهيئات لمهام مختلفة (قيم منطقية، مصفوفات ثابتة، إلخ). في كل حالة، إذا قمنا بتغيير أي كود في مهيئ Rails، فإننا نحتاج إلى إعادة تشغيل Rails (“Control c، ثم rails s في وضع التطوير”) لتطبيق القيم الجديدة في المهيئات داخل تطبيق Rails.

أرجو تصحيحي إذا كنت مخطئًا! شكرًا لك.

في بعض الأحيان، أعتقد أن هذا قد يكون مربكًا قليلاً لبعض مطوري إضافات Discourse، خاصة أولئك الذين يعملون بشكل أساسي على إضافات Discourse وليس مع تطبيقات Rails بشكل عام، عندما نكتب “Discourse يفعل هذا” أو “Discourse يفعل ذلك” بينما ما نصفه حقًا هو وظيفة أو خاصية أساسية في Rails وليست بالضرورة مرتبطة بـ Discourse بحد ذاتها.

Rails 6 يقرأ جميع الملفات الموجودة في مجلد config/initializers (وكل المجلدات الفرعية داخل config/initializers) فقط عند بدء تشغيل Rails. وبالمثل (لست متأكدًا بنسبة 100% بشأن الإضافات)، فإن إضافة Discourse التي تحتوي على كود يعتمد على after_initialize سيتم تحميلها بواسطة تطبيق Rails فقط عند بدء تشغيل Rails أو إعادة تشغيله، لأن هذه خاصية أساسية لعملية بدء تشغيل Rails.

تخميني هو أن الجميع هنا يعرفون هذا بالفعل من يعملون على Rails. أنا فقط بدأت أعرف هذه التفاصيل (وأشعر أن لدي طريقًا طويلًا لأصبح خبيرًا)؛ لأنني أعمل حاليًا على تطبيق Rails يوميًا (في هذه الأيام)، والذي بالمناسبة، أتمنى الآن أن أبدأ العمل مع Rails قبل عقد من الزمان، لأنه قادمًا من خلفية تطوير LAMP، أجد Rails أفضل بكثير (سهلة وممتعة للعمل معها).

أصبحت معجبًا كبيرًا بـ Rails هذا العام، وأنا ممتن جدًا لـ Discourse لكونها نقطة البداية في هذا المسار.

مرة أخرى، أرجو تصحيحي إذا كنت مخطئًا! شكرًا لك. أنا أحاول أن أصبح أكثر خبرة في Rails.