在Javascript中访问Rails子对象

时间:2012-07-07 21:50:44

标签: javascript ruby-on-rails google-maps-api-3 geocoding

我对铁轨很新,所以请耐心等待。我还没有完全掌握所有的“魔力”。

基本上我需要访问Javascript中的Location对象,它们都包含0-N坐标。我非常确定模型设置正确,每个Coordinate都有一个location_id。

我设法使用以下方法获取已解析的Location对象JSON:我把

  def index
     @locations = Location.all.to_json
  end 

在控制器中,并在视图中使用

进行访问
var theLocations = <%= @locations.html_safe %>;

但是,当我在日志中显示此变量时,它不显示坐标,哪种有意义。事实上,我计划迭代所有的位置,并为每个位置创建一个带有相关坐标的javascript var。然后,这些变量将作为对象传递给Google地图。

基本上我打算做类似(伪代码)的事情:

for(Location l in Locations){

    get all Coordinate objects within Location

    for(Coordinate c: Coordinates);

        var myObject = new google.maps.LatLng(c.X, c.Y),
        add myObject to list for this location.
    }
}

我只是不确定如何处理这个问题。如何获取位置内坐标的引用?

1 个答案:

答案 0 :(得分:1)

快速而肮脏的答案是在to_json来电中传递参数:

@locations = Location.all.to_json(:include => :coordinate)

您可能还希望consider creating a custom JSON structure覆盖as_json并在此之后将对象渲染为JSON。