2011-09-29 10 views
5

Voy a llamar a los métodos de ayuda de la consola de Rails en Rails 3 así:Recargar ayudante de rieles consola

>> helper.my_method(parameter) 
>> #=> some result 

Sin embargo, si se cambia el método de ayuda los cambios no se reflejan cuando llamo el mismo método de nuevo. Tengo que exit y ejecutar rails console para ver que los cambios en el método de ayuda surtan efecto.

Respuesta

4

En primer lugar, tituló su pregunta. En el futuro, si tiene más claro lo que está buscando, es más probable que obtenga una respuesta antes.

En segundo lugar, en Ruby "funciones" se llaman "métodos". No es gran cosa y todos sabemos de lo que estás hablando, pero es bueno acostumbrarse a la terminología que usa la comunidad.

Para responder a su pregunta, sólo tiene que ejecutar se volverá a cargar reload! y la mayoría de las clases, incluyendo sus ayudantes.

+0

Gracias coreyward. – utiq

7

En realidad, helper es un objeto instanciado que memoizes los ayudantes ApplicationController, que no se volverá a cargar cuando se llama reload!, al menos en los carriles 4. Puede solucionar esto llamando ApplicationController.helpers.my_method(parameter) en la consola. Todavía necesitará usar reload! cuando edite el helper, pero se volverá a cargar a diferencia de helper.

0

Después de encontrarme con este problema dos veces y darme por vencido, descubrí cómo volver a cargar ayudantes sin salir de la consola y no llamarlos a través del ApplicationController.helpers.my_method(parameter).

Después de llamar reload!, incluyen su ayudante nuevo (include MyHelper) e incluirá su ayudante cambiado recientemente.

Cuestiones relacionadas