Plugin Discourse e configurazione Rails 6 config/initializers Domanda

Immagino di averti tratto in inganno nei post precedenti. reloadable_patch è utile per lo sviluppo di Discourse, ma @david ne ha spiegato molto bene l’utilizzo:


Qualsiasi cosa all’interno del blocco after_initialize di plugin.rb viene caricata solo durante l’avvio dell’applicazione e non nei successivi ricaricamenti.

Quindi, supponendo che tu voglia aggiungere qualcosa al serializzatore dell’utente. Il comportamento normale sarebbe:

All’avvio:

  • Discourse carica user_serializer.rb
  • Discourse carica plugin.rb, che contiene un override per user_serializer

Al ricaricamento:

  • Discourse ricarica user_serializer.rb
  • (la patch di plugin.rb non viene ricaricata, l’override del plugin viene perso)

Con il nostro sistema reloadable_patch:

All’avvio:

  • Discourse carica user_serializer.rb
  • Discourse carica plugin.rb e registra il reloadable_patch per il serializzatore dell’utente
  • Vengono eseguite le patch ricaricabili

Al ricaricamento:

  • Discourse ricarica user_serializer.rb
  • Vengono eseguite le patch ricaricabili
  • (evviva, l’override del plugin continua a funzionare)