2011-09-29 19 views
5

sto chiamando metodi di supporto dalla console Rails in Rails 3 in questo modo:Ricarica Helper da Rails Console

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

Tuttavia, se cambio il metodo di supporto le modifiche non si riflettono quando chiamo lo stesso metodo ancora. Devo exit ed eseguire rails console per vedere le modifiche al metodo helper hanno effetto.

risposta

4

Prima di tutto, hai sbagliato la tua domanda. In futuro, se sarai più chiaro su ciò che stai cercando, avrai più probabilità di ottenere una risposta prima.

Secondo, in "funzioni" Ruby sono chiamati "metodi". Non è un grosso problema e sappiamo tutti di cosa stai parlando, ma è bene abituarsi alla terminologia utilizzata dalla comunità.

Per rispondere alla tua domanda, non vi resta che correre reload! e maggior parte classi saranno ricaricati, compresi i vostri aiutanti.

+0

Grazie coreyward. – utiq

7

In realtà, helper è un oggetto istanziato che memoizes gli aiutanti ApplicationController, che non verrà ricaricato quando si chiama reload!, almeno in Rails 4. È possibile aggirare questo chiamando ApplicationController.helpers.my_method(parameter) nella console. Sarà comunque necessario utilizzare quando si modifica l'helper, ma verrà ricaricato diversamente da helper.

0

Dopo aver riscontrato questo problema due volte e rinunciando, ho scoperto come ricaricare gli helper senza uscire dalla console e non chiamarli tramite ApplicationController.helpers.my_method(parameter).

Dopo aver chiamato reload!, inserisci la tua aiutante nuovo (include MyHelper) e includerà il vostro aiutante recentemente cambiato.

Problemi correlati