مرحبًا @fzngagan، أنا بالتأكيد لستُ “خبيرًا في Ruby” ولديّ خبرة أقل بكثير مع Rails مقارنة بمعظم مطوري إضافات ديسكورش؛ ولكن مع ذلك: ربما يمكنك الاعتماد على شيء مشابه لهذا في المستقبل إذا احتجت إلى إعادة تحميل الملفات في إضافتك دون إعادة تشغيل التطبيق في بيئة الإنتاج (أو التطوير):
after_initialize do
# غيّر السطر التالي إلى المتحكم الذي تفضّله
# أو استخدم متحكم التطبيق إذا لزم الأمر
ApplicationController.class_eval do
before_action :do_my_stuff
def do_my_stuff
load File.open(FAIZAANS_FAV_FILE)
end
end
end
هذا سيعيد تحميل الملفات كما هو متوقّع.
أنا أستخدم هذا حاليًا في إضافة على النحو التالي، ويعمل كما هو متوقّع:
after_initialize do
Admin::AdminController.class_eval do
before_action :do_neo_plugin_info
def do_neo_plugin_info
load File.open(PLUGIN_LOGIC)
end
end
end
أستخدم هذا الكود حاليًا في إضافة أعمل عليها بين الحين والآخر، وهي تعرض أسماء الحاويات التي يتم تحليلها من ENV["DATA_NAME"]، بالإضافة إلى مساحة القرص التي يتم تحليلها من خلال بعض أكواد النظام باستخدام df وgrep.
في عروض الإدارة لدينا:
كما ذُكر، لستُ خبيرًا في Ruby بأي حال من الأحوال؛ لكن هذه الطريقة تعمل بالنسبة لي.
نظرتُ إلى كود الإضافة في instance.rb، وبعد بعض المحاولات والأخطاء المختلفة، قررتُ الاعتماد على كود class_eval المذكور أعلاه، وقد لا يكون هذا هو الطريقة المفضّلة للقيام بالأشياء، لكنه بالتأكيد يعمل بالنسبة لي.
على سبيل المثال، إذا قمتُ بإعادة تحميل الصفحة بعد حذف العديد من نسخ احتياطي ديسكورش، فإن مؤشر مساحة القرص يتغيّر كما هو متوقّع.
