如何做一个Ajax GET请求从rails获取数据并将其传递给javascript(谷歌地图)?

Mad*_*ddy 3 javascript ajax ruby-on-rails google-maps-api-3 ruby-on-rails-3.2

我有一个模型位置,有两列纬度和经度.我想找到一种方法,我可以获取位置列表,并使用Ajax和javascript将它们传递给谷歌地图.到目前为止,我的代码如下:

map.js:

function initialize() 
{   
    var map;
    var latlng = new google.maps.LatLng(37.09, -95.71);
    var options = {
    zoom: 5, 
    center: latlng, 
    mapTypeId: google.maps.MapTypeId.ROADMAP,
    disableDefaultUI: true,
    disableDoubleClickZoom: true,
    noClear: true,
    navigationControl: true,
    navigationControlOptions: {
        position: google.maps.ControlPosition.TOP_RIGHT
    }
    };
   map = new google.maps.Map(document.getElementById('map'), options);

   var marker = new google.maps.Marker({
    position: latlng, 
    map: map, 
    title: 'Click me', 
    });
}
Run Code Online (Sandbox Code Playgroud)

locations_controller.rb

def show
    @location = Location.find(params[:id])

    respond_to do |format|
      format.html # show.html.erb
      format.json { render json: @location }
    end
  end
Run Code Online (Sandbox Code Playgroud)

显示地图的页面:

<div id="map" onload="initialize();">
</div>
Run Code Online (Sandbox Code Playgroud)

所以现在我想找到一种从map.js发出AJAX请求的方法,这样我就可以从Location模型中获取位置并将其传递给marker对象,这样当map加载数据库中预先存在的所有位置时被传递给标记并出现那些标记.

谢谢.

Mad*_*ddy 7

哦,我找到了获取位置列表的方法.控制器和视图保持不变.

我在map.js中添加了以下ajax,它为我完成了工作.

$.ajax({
        type: "GET",
        dataType: "json",
        url: "/locations",
        success: function(data){}
    }); 
Run Code Online (Sandbox Code Playgroud)

现在,数据可以传递到谷歌地图中的标记对象.