Hai visto questo argomento? Se segui la struttura lì (e nello scheletro del plugin), le cose dovrebbero funzionare abbastanza bene:
Una parte importante dell’autocaricamento di Zeitwerk sono i nomi/percorsi dei file, quindi è difficile identificare il problema dallo snippet che hai condiviso. È in un file plugin.rb? O in qualche altro file?