Questo descrive una proprietà fondamentale di Rails, che non è pertinente specificamente a Discourse.
In Rails, tutti gli initializers vengono caricati solo all’avvio di Rails, quindi qualsiasi plugin che esegue codice basato sull’initializer, come “after_initializer”, verrà eseguito solo all’avvio o al riavvio di Rails (correggetemi se sbaglio).
Il motivo per cui conosco questo aspetto è che sto attualmente sviluppando un’applicazione Rails per un cliente e ho scritto molti initializers per vari compiti (booleani, array statici, ecc.). In ogni caso, se modifichiamo il codice in un initializer di Rails, è necessario riavviare Rails (“Control c, rails s in dev”) per far sì che i nuovi valori negli initializers vengano caricati nell’app Rails.
Correggetemi se sbaglio! Grazie.
A volte, penso che possa essere un po’ confuso per alcuni sviluppatori di plugin di Discourse, specialmente per quelli che lavorano principalmente sui plugin di Discourse e non con le applicazioni Rails in generale, quando scriviamo “Discourse fa questo” o “Discourse fa quello”, quando in realtà stiamo descrivendo una funzione o proprietà fondamentale di Rails, non necessariamente pertinente a Discourse in sé.
Rails 6 legge tutti i file nella directory config/initializers (e in tutte le sottodirectory di config/initializers) solo all’avvio di Rails. Allo stesso modo (non sono al 100% sicuro riguardo ai plugin), un plugin di Discourse con codice dipendente da after_initialize verrà (confermatelo gentilmente) caricato dall’app Rails solo all’avvio o al riavvio di Rails, poiché questa è una proprietà fondamentale del processo di avvio di Rails.
Immagino che tutti quelli qui presenti che lavorano su Rails lo sappiano già. Io sto solo iniziando a conoscere questi dettagli (e sento di avere ancora molta strada da fare per diventare un esperto); perché sto lavorando quotidianamente su un’applicazione Rails (al momento), e per inciso, ora vorrei aver iniziato a lavorare con Rails un decennio fa, poiché provenendo da un background di sviluppo LAMP, trovo Rails molto migliore (facile e divertente da usare).
Quest’anno sono diventato un grande fan di Rails e sono molto grato a Discourse per avermi avviato su questo percorso.
Di nuovo, correggetemi se sbaglio! Grazie. Sto cercando di diventare più esperto in Rails.