2013-03-12 12 views
8

Vedere aggiornamento: per risposta, in fondo,Rails sta pubblicando la sintassi ad alta voce quando dovrebbe essere in esecuzione dietro le quinte?

domanda originale:

Ho un <script></script> nella mia pagina e quando si esaurisce lo fa: -

<% Route.all.each do |route| %> 
    var long = "<%= route.longitude %>"; 
    var lati = "<%= route.latitude %>"; 
    var title = "Route <%= route.route_number %> Stop <%= route.stop_number %>"; 
    var id = "<%= route.id %>"; 
<% end %> 

Ma in Firebug sto ottenendo questo errore in console.

SyntaxError: syntax error 
[Break On This Error] 
<% Route.all.each do |route| %> 
^ 

Aggiornamento: si rivela essere un problema di Firebug, funziona come previsto, ma Firebug pubblicherà come un errore.

+0

qual è l'estensione del file in cui risiede questo codice? – jvnill

+0

admin.html.erb (limite di 15 caratteri) – Datsik

+0

che è davvero strano. puoi aggiungere l'intero modello in un contesto? – jvnill

risposta

0

Prova questo,

<% content_for :scripts do %> 
<script type="text/javascript" charset="utf-8"> 

<< your script code >> 

</script> 
<% end %> 
0

credo che sia perché le variabili js lungo, Lati, titolo e id sono definiti più di una volta: ogni percorso di una rotta esempio genera una definizione di tutte queste quattro variabili. Per evitare questo, definirli una volta prima del ciclo con un valore vuoto '' e quindi rimuovere "var" prima di loro nel ciclo.

var long = ""; var lati = ""; var title = ""; var id = ""; 
<% Route.all.each do |route| %> 
long = "<%= route.longitude %>"; 
lati = "<%= route.latitude %>"; 
title = "Route <%= route.route_number %> Stop <%= route.stop_number %>"; 
id = "<%= route.id%>"; 
<% end %> 
1

Questo può essere correlato al vostro ambiente (la "produzione" non mostra l'errore dettagliato e informazioni di debug)

o facenti capo a Firebug stesso (Dio li benedica, non poteva vivere senza di essa)