8

请参阅更新:底部的答案

原始问题:

我的页面中有一个<script></script>,当它运行时:-

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

但是Firebug我在控制台中遇到了这个错误。

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

更新:原来是一个萤火虫问题,按预期工作,但萤火虫会作为错误发布。

4

3 回答 3

1

这与您的环境有关(“生产”不显示详细的错误和调试信息)

或与萤火虫本身有关(上帝保佑他们,没有它就活不下去)

于 2014-05-19T19:00:45.267 回答
0

尝试这个,

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

<< your script code >>

</script>
<% end %>
于 2013-03-12T07:14:48.653 回答
0

我相信这是因为 js 变量 long、lati、title 和 id 定义了不止一次:Route 的每个实例路由都会生成所有这四个变量的定义。为避免这种情况,请在循环之前用空值 '' 定义它们一次,然后在循环中删除它们之前的“var”。

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 %>
于 2013-05-05T12:41:00.133 回答