2013-07-18 16 views
37

Ho notato che quando cambio file di progetto di binari come html.erb o .css, non devo riavviare il server con il comando rails -s.Quando è necessario riavviare il server in Rails?

Ma penso che quando voglio installare un nuovo gioiello devo. Il fatto è che sto cercando di far funzionare jQuery, quindi sono stanco di fare rails -s tutto il tempo.

Qualcuno può dirmi quando è necessario eseguire rails -s di nuovo quando modifica la mia app e quando posso permettermi di NON farlo? Non facendolo, voglio dire semplicemente aggiornando la pagina web per vedere le modifiche.

+0

possibile duplicato di [Come ricaricare un gioiello su ogni richiesta in modalità Sviluppo?] (Http://stackoverflow.com/questions/6191635/how-to-reload-a-gem-on-every-request-in -development-mode) – Nakilon

risposta

50

È necessario riavviare il server quando è necessario caricare nuovamente i binari dall'inizio.

Se si aggiungono o si rimuovono gemme, allora sì, sarà necessario riavviare il server.

Se cambi la tua versione di ruby, cambia il tuo Gemfile o cambia qualcosa dalle classi interne di Rails, dovrai riavviarlo, altrimenti dovrebbe essere ok. Ma se sorgono problemi imprevisti, riavviare il server è la prima cosa che dovresti provare.

Inoltre, su una nota a margine, le modifiche vengono visualizzate solo aggiornando la pagina se config.cache_classes è impostato su false (che ritengo sia l'impostazione predefinita per lo sviluppo, ma non per la produzione).

Edit:

Giusto per assicurarsi che tutti se ne accorgerà, Tadman ha detto una cosa saggia i commenti, La regola generale qui sta apportando modifiche al nulla al di fuori della app/o config/o routes.rb db/richiederà un riavvio.

+2

buona risposta :-) +1 –

+8

Qui la regola generale sta apportando modifiche a qualsiasi cosa esterna a 'app /' o 'config/routes.rb' richiederà un riavvio. – tadman

1

Generalmente è necessario riavviare il server ogni volta che un gioiello viene installato o aggiornato, se si aggiorna Ruby o se si modifica una logica che viene eseguita durante l'avvio (come config/boot.rb o config/database.yml) . Altrimenti è generalmente ok, anche se si modificano/aggiungono modelli/controller.

Nota a margine: lo jquery-rails gem semplifica l'aggiunta di jQuery a un progetto.

15

In fase di sviluppo è necessario riavviare quando:

  • È aggiungere/rimuovere le gemme/aggiornamento nella vostra Gemfile.
  • Si apportano altre modifiche all'ambiente Ruby, forse tramite rvm.
  • È possibile modificare qualsiasi file in config/, anche se routes.rb viene ricaricato per voi.
  • È possibile modificare manualmente qualsiasi file che si è require anziché il caricamento automatico.

Nella produzione è necessario riavviare quando:

  • si modifica qualsiasi codice o gemme.

N.B. Questi comportamenti possono essere modificati modificando il rispettivo file environment/<env>.rb, anche se i valori predefiniti sono sensibili.

Problemi correlati