2013-03-12 24 views
8

Xem update: cho câu trả lời ở phía dướiRails đang đăng cú pháp của nó to lên khi nó chạy phía sau hậu trường?

gốc câu hỏi:

Tôi có một <script></script> trong trang của tôi và khi nó chạy nó: -

<% 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 %> 

Nhưng trong Firebug Tôi nhận này lỗi trong bảng điều khiển.

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

Cập nhật: Hóa ra lại là một vấn đề firebug, hoạt động như dự định nhưng con đom đóm sẽ đăng như một lỗi.

+0

phần mở rộng của tệp nơi mã này tồn tại là gì? – jvnill

+0

admin.html.erb (giới hạn 15 char) – Datsik

+0

thực sự là lạ. bạn có thể thêm toàn bộ khuôn mẫu vào một ý chính không? – jvnill

Trả lời

0

Hãy thử điều này,

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

<< your script code >> 

</script> 
<% end %> 
0

Tôi tin rằng đó là bởi vì các biến js dài, Lati, tiêu đề và id được định nghĩa nhiều hơn một lần: mỗi tuyến đường thể hiện của một Route tạo ra một định nghĩa của tất cả bốn biến này. Để tránh điều này, hãy xác định chúng một lần trước vòng lặp với một giá trị rỗng '' và sau đó loại bỏ "var" trước chúng trong vòng lặp.

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

Đây là một trong hai liên quan đến môi trường của bạn ("sản xuất" không hiển thị lỗi chi tiết và thông tin gỡ lỗi)

Hoặc liên quan đến bản thân Firebug (thần ban phước cho họ, không thể sống mà không có nó)

Các vấn đề liên quan