2011-07-06 7 views
47

Estoy jugando con la consola, cambio algún código de modelo y ahora quiero probarlo. Normalmente reinicio la consola. ¿Hay una manera más rápida? Tal vez un comando de consola para volver a cargar el código del modelo?¿Hay un comando de Rails Console (Rails 3+) para volver a cargar el código modificado?

+0

Tuve el mismo problema (¡recargar! No funciona como lo necesito) escribiendo un pequeño código de ayuda, así que terminé usando [link] (http://codepad.org/) para probar. Funciona bien – rtfminc

Respuesta

80

Por supuesto, simplemente escriba:

reload! 
+3

Esto no parece funcionar para mí. Si hago un comentario sobre un método en un modelo, entonces tecleo 'reload!', El método aún funciona después de la recarga. ?!? Me pregunto por qué y si hay otra forma de "reiniciar" la consola. – Meltemi

+4

@Meltemi: así es como funciona Ruby (concepto de clases abiertas): vuelve a leer todas las definiciones, anulando los métodos existentes pero no elimina los antiguos. Use 'Class.send (: remove_method,: method_name)' para hacer el truco – apneadiving

+1

Solo para agregar 5 centavos: si usa 'Pry', a veces necesita agregar' self.send (: include, Rails :: ConsoleMethods) ' –

4

es necesario llamar a reload!

Este comando borrar las constantes cargadas que han sido cargados y los cargará a medida que se hace referencia en la consola.

Si tiene objetos antiguos anteriores al reload!, tendrá que llamar al reload en estos objetos individuales o buscar objetos nuevos y trabajar con ellos si desea probar el nuevo método.