Javascript 当我从application.html.erb获取js代码并将其放入自己的文件中时,js代码不再工作

Javascript 当我从application.html.erb获取js代码并将其放入自己的文件中时,js代码不再工作,javascript,ruby-on-rails,Javascript,Ruby On Rails,我正在application.html.erb中加载Google地图API。我还有一些JS代码,它执行与GoogleMapsAPI的实际通信。当我在application.html.erb的脚本标记中包含这段代码时,它工作得很好,我看到了我请求的映射。但是,当我将其移动到apicombiner.js.coffee中时,浏览器中出现了一个错误,告诉我error:function initialize()中的保留字“function”{....apicombiner.js.coffee应在加载api

我正在application.html.erb中加载Google地图API。我还有一些JS代码,它执行与GoogleMapsAPI的实际通信。当我在application.html.erb的脚本标记中包含这段代码时,它工作得很好,我看到了我请求的映射。但是,当我将其移动到apicombiner.js.coffee中时,浏览器中出现了一个错误,告诉我
error:function initialize()中的保留字“function”{...
.apicombiner.js.coffee应在加载apicombiner控制器中的任何页面时自动编译为application.js,并且此特定页面是apicombiner_控制器中的“索引”视图

我尝试将js转换为coffeescript并重新加载页面。我不再收到错误,但地图没有出现。我只得到了一个白色页面。我还尝试将文件扩展名从.js.cofee重命名为only.js。结果没有错误,而是一个白色页面

以下是javascript代码:

  function initialize() {
    var mapOptions = {
      center: new google.maps.LatLng(-34.397, 150.644),
      zoom: 8
    };
    var map = new google.maps.Map(document.getElementById("map-canvas"),
        mapOptions);
  }

  google.maps.event.addDomListener(window, 'load', initialize);
以下是咖啡脚本版本,由Js2coffee.org翻译:

initialize = ->
  mapOptions =
    center: new google.maps.LatLng(-34.397, 150.644)
    zoom: 8

  map = new google.maps.Map(document.getElementById("map-canvas"), mapOptions)
  return
google.maps.event.addDomListener window, "load", initialize
顺便说一下,视图代码非常简单

确保JS代码以正确的顺序加载在您自己的东西之前定义,然后它就可以中断。确保它与内联的顺序相同。

控制台中有错误吗?@deep有错误,但现在没有错误。我可以尝试复制它们。您使用rails 4和turbolink吗?您的代码在我看来很好。@deep是的。我也很困惑。我现在要去一个rails类,希望我能我不确定我是否解决了这个问题,但无论如何我都会接受你的回答。