Override existing Discourse methods in plugins

Новичок в разработке 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("мой переопределенный метод срабатывает!")

      # продолжить с оригинальной реализацией из TopicEmbed
      super

    end
  end

  # выполняем prepend здесь
  singleton_class.prepend TopicEmbedOverrideModule
end

Подозреваю, что проблема с сохранением может быть связана с моей средой разработки и тем, как компилируется/кэшируется код Ruby.
Также я пробовал rm -rf tmp; bin/ember-cli -u и bundle exec rake tmp:cache:clear.