2011-07-06 9 views
47

Sto giocando con la console, cambio qualche codice modello e ora voglio testarlo. Di solito riavvio la console. C'è un modo più veloce? Forse un comando da console per ricaricare il codice del modello?Esiste un comando Rails Console (Rails 3+) per ricaricare il codice modificato?

+0

Ho avuto lo stesso problema (ricaricare! Non funziona come mi serve) scrivendo un piccolo codice di supporto - così ho finito per usare [link] (http://codepad.org/) per testare. Funziona bene. – rtfminc

risposta

80

Naturalmente, digitare semplicemente:

reload! 
+3

Questo non sembra funzionare per me. Se commento un metodo in un modello, digito "ricarica!", Il metodo funziona ancora dopo il ricaricamento. ?!? Mi chiedo perché e se c'è un altro modo per 'riavviare' la console? – Meltemi

+4

@Meltemi: è proprio il modo in cui Ruby funziona (concetto di classi aperte): rilegge tutte le definizioni, sovrascrive i metodi esistenti ma non svuota quelli vecchi. Usa 'Class.send (: remove_method,: method_name)' per fare il trucco – apneadiving

+1

Solo per aggiungere 5 centesimi: se stai usando 'Pry', a volte devi aggiungere' self.send (: include, Rails :: ConsoleMethods) ' –

4

è necessario chiamare reload!

Questo comando cancellare le costanti caricati che sono stati caricati e li caricare come sono fatto riferimento nella console.

Se si dispone di oggetti vecchi precedenti allo reload!, è necessario chiamare reload su questi singoli oggetti o trovare nuovi oggetti e lavorare con essi se si desidera provare il nuovo metodo.