2012-05-18 18 views
5

Rails 3.2.3. Ho una app Rails con /lib nei miei percorsi di autoload. Uno dei miei file di libreria è che richiedono un gruppo di file in questo modoForzatura del ricaricamento dei file di libreria richiesti da un file di libreria caricato automaticamente

Dir[Rails.root.join("lib/foo/*.rb")].each { |f| require f } 

In fase di sviluppo, tali file non ricaricare se li cambio. Ad esempio, se modifico /lib/foo/bar.rb, dovrò riavviare il server per vedere quelle modifiche. Qualcuno può suggerire un modo in modo che a ogni richiesta vengano ricaricati correttamente?

risposta

3

Se si dispone di tali file nel tuo percorso caricamento automatico:

config.autoload_paths += %W(#{config.root}/lib) 

allora non dovrebbe essere necessario richiedere loro. Hai provato con this?

+1

Si dispone di un trascinamento parentesi! – Excalibur

3

require non funziona molto bene con il sistema di caricamento automatico delle guide.

require_dependency farà praticamente ciò che richiede ma mantiene il sistema di autoloading nel ciclo in modo che le costanti caricate vengano scaricate alla fine della richiesta. Potrebbe essere necessario assicurarsi che i file siano nei percorsi di caricamento automatico delle guide

+0

Una volta rimosso 'require' il ricaricamento è avvenuto automaticamente se il file del modulo è cambiato. Grazie a @Frederick Cheung –

0

È necessario aggiungere o non commentare la linea.

config.autoload_paths + =% W (# {config.root}/lib)

alla classe Application in config/application.rb

Problemi correlati