Je suppose que je vous ai induit en erreur dans les messages ci-dessus. reloadable_patch est utile pour le développement de Discourse, mais @david en a très bien expliqué l’utilisation :
Tout ce qui se trouve dans le bloc after_initialize de plugin.rb n’est chargé que au démarrage de l’application, et non lors des rechargements ultérieurs.
Donc, en supposant que vous souhaitiez ajouter quelque chose au sérialiseur de l’utilisateur. Le comportement normal serait le suivant :
Au démarrage :
- Discourse charge
user_serializer.rb - Discourse charge
plugin.rb, qui contient une surcharge pouruser_serializer
Au rechargement :
- Discourse recharge
user_serializer.rb - (la correction de plugin.rb n’est pas rechargée, la surcharge du plugin est perdue)
Avec notre système reloadable_patch :
Au démarrage :
- Discourse charge
user_serializer.rb - Discourse charge
plugin.rbet enregistre lereloadable_patchpour le sérialiseur de l’utilisateur - Les correctifs rechargeables sont exécutés
Au rechargement :
- Discourse recharge
user_serializer.rb - Les correctifs rechargeables sont exécutés
- (yay, la surcharge du plugin fonctionne toujours)