2011-11-19 13 views
9

Questo è un problema molto strano. Ho un'app per i binari in cui sto sostituendo un partial sulla pagina con un altro usando UJS. Recentemente, ha smesso di funzionare, quindi ho iniziato a registrare tutto il processo per vedere dove si era rotto. Ecco cosa ho trovato:rails ujs - javascript non in esecuzione

  • Dopo aver fatto clic sul collegamento, la console di rota mi dice che tutto il rendering, inclusi tutti i parziali, e restituisce 200 OK.
  • A mette nelle azioni di controllo torna bene
  • Un mette nei blocchi respond.do ritorna ammenda
  • A mette nel file .js.erb torna bene

Questo significa che sta facendo tutto il modo di eseguire il file .js.erb e valutare il ruby ​​senza errori. Ma ecco cosa è strano - nessuno dei javascript è in esecuzione. Quando eseguo un avviso ('ciao?') Nel file .js.erb, non è in esecuzione.

Qualcuno ha mai avuto questo problema in passato? Sembra estremamente strano che esegua la valutazione erb ma non il js. E nemmeno gli errori appaiono nella console js.

Per il record ho: cancellato la cache, riavviato il browser, riavviato l'app per rotaie e non è cambiato nulla. Codice

Esempio:

# view 
link_to 'example', some_path, :remote => true 

# controller 
respond_to do |format| 
    format.js 
end 

# .js.erb file 
alert('this never shows up'); 
<% puts 'this shows up in the rails console' %> 

Grazie soo molto a chiunque possa gettare un po 'di luce su questo strano problema!

+0

Tutto ciò nella console JS? –

+0

"E nemmeno gli errori appaiono nella console js." –

+1

Mi dispiace; Ignoro automaticamente le frasi che iniziano con le congiunzioni. –

risposta

9

Qualche possibilità c'è un errore nel js? La richiesta Ajax non viene visualizzata normalmente nella console js. http://www.alfajango.com/blog/rails-js-erb-remote-response-not-executing/

(Un ambiente simile funziona bene sulla mia macchina)

+0

Haha il diritto, viene visualizzato nella scheda di rete dell'ispettore chrome (sotto XHR, come accennato). La console javascript rimane vuota. Questo è un gran bel post, lo controllerò e vedrò se lo risolve! Grazie ~ –

+0

In questo articolo si dice di controllare se viene elaborato "come JS" - per me, si dice che viene elaborato come JS. Quindi ho fatto clic sul link alternativo che hai fornito e mi ha dato un errore 404. –

+0

Ya ho capito anche questo :(ma la parte inferiore dell'articolo fornisce un modo per testare i js renderizzati per gli errori in firebug. Che può fornire alcune informazioni su cosa sta succedendo. –

Problemi correlati