تجاوز طرق Discourse الموجودة في الإضافات

جديد في تطوير discourse و Rails. أستخدم بيئة Dev Container (في VS Code) محليًا. كانت الأدلة والوثائق مفيدة.

كنت أتساءل عما إذا كان لدى أي شخص أي نصائح حول كيفية تجاوز فئات discourse الأساسية، وتحديدًا جعلها مستمرة في بيئة تطوير محلية.

في المكون الإضافي الخاص بي، أحاول تجاوز طريقة في فئة discourse الأساسية TopicEmbed. (باستخدام النهج العام الموثق بشكل جيد من قبل @angus أعلاه.) يعمل مرة واحدة عند إعادة بناء وإعادة تحميل VS Code، ولكن في طلبات HTTP اللاحقة لا يتم استدعاء التجاوز الخاص بي أبدًا.

تم تعريف التجاوز الخاص بي في /plugins/my-plugin/app/models/override.rb وأستخدم require_relative لتضمين هذا الملف في plugin.rb الخاص بي.

#override.rb:
class ::TopicEmbed

  # وحدة سيتم إلحاقها بـ TopicEmbed.singleton_class
  module TopicEmbedOverrideModule
    # طريقة في TopicEmbed
    def first_paragraph_from(html)
      Rails.logger.info(“my override is happening! ”)

      # استمر في التنفيذ الأصلي المقدم من TopicEmbed.
      super

    end
  end

  # قم بالإلحاق هنا
  singleton_class.prepend TopicEmbedOverrideModule
end

أشك في أن هذا التحدي المتعلق بالاستمرارية قد يكون بسبب بيئة التطوير الخاصة بي وكيفية تجميع/تخزين ذاكرة التخزين المؤقت لرمز ruby.
لقد جربت أيضًا rm -rf tmp; bin/ember-cli -u و bundle exec rake tmp:cache:clear.