Sovrascrivi i metodi Esistenti di Discourse nei plugin

Nuovo in discourse e nello sviluppo Rails. Sto usando l’ambiente Dev Container (in VS Code) localmente. Le guide e la documentazione sono state utili.

Mi chiedevo se qualcuno avesse qualche consiglio su come sovrascrivere le classi principali di discourse, in particolare come farla persistere in un ambiente di sviluppo locale.

Nel mio plugin, sto cercando di sovrascrivere un metodo nella classe principale di discourse TopicEmbed. (utilizzando l’approccio generale ben documentato da @angus sopra.) Funziona una volta quando ricostruisco e ricarico VS Code, ma nelle successive richieste http la mia sovrascrittura non viene mai invocata.

La mia sovrascrittura è definita in /plugins/my-plugin/app/models/override.rb e uso require_relative per includere questo file nel mio plugin.rb.

#override.rb:
class ::TopicEmbed

  # un modulo che verrà anteposto alla singleton_class di TopicEmbed.
  module TopicEmbedOverrideModule
    # metodo in TopicEmbed
    def first_paragraph_from(html)
      Rails.logger.info(“la mia sovrascrittura sta avvenendo! ”)

      # continua con l'implementazione originale fornita da TopicEmbed.
      super

    end
  end

  # fai l'anteposizione qui
  singleton_class.prepend TopicEmbedOverrideModule
end

Sospetto che questa mia sfida di persistenza possa essere dovuta al mio ambiente di sviluppo e a come il codice ruby viene compilato/messo in cache.
Ho anche provato rm -rf tmp; bin/ember-cli -u e bundle exec rake tmp:cache:clear.