C'è un modo per ricaricare tutte le gemme in un'app Rails senza riavviare completamente il server? Ho un Gemfile che usa :path
per fare riferimento a una dipendenza che sto sviluppando sullo stesso sistema, ed è fastidioso dover uccidere l'app e fare di nuovo rails -s
ogni volta che salvi una modifica. Sarebbe anche bello in produzione essere in grado di aggiornare una gemma senza uccidere il server per qualche secondo. Pensieri?Come ricaricare tutte le gemme in Rails 3?
risposta
Recentemente ho scoperto che mi piacerebbe fare lo stesso come dici tu, così posso sviluppare gemme insieme ai miei progetti.
In un Gemfile non ho incluso gemma dipendenza, ma invece ho aggiunto in config/ambienti/development.rb
ActiveSupport::Dependencies.autoload_paths << "/path_to_gem_dir/gem_name/lib"
E mi obbliga a fare qualche lavoro in più con il che rende la sincronizzazione, ma in casi più comuni è ok. Quando ho finito di lavorare su una gemma posso rimuovere il caricamento automatico e utilizzare la dipendenza gem in Gemfile.
Ricordare che la dipendenza della gemma può essere inserita in : produzione,: prova gruppi, quindi in fase di sviluppo è stata pulita.
Per esempio
group :development do
# gem "wirble" COMMENTED!, so I can autoload files!
end
group :production do
gem "wirble"
end
codifica Felice!
Grazie per il suggerimento! Vorrei aggiungere che se la gemma su cui stai lavorando ha dipendenze extra (nella gemspec), dovresti aggiungerle al gruppo di sviluppo del tuo gemfile altrimenti non verranno caricate. –
Sì, puoi solo aggiungere sorgenti lì. Non sono ancora riuscito a trovare un modo completamente automatico per farlo, ma per ora sembra il più vicino :) – m4risU
Era questo capito? – Tom
No, non ho mai avuto una buona risposta. –