访问Javascript中的Rails子对象

Accessing Rails child objects within Javascript

本文关键字:对象 Rails 中的 Javascript 访问      更新时间:2023-09-26

我对rails很陌生,所以请耐心等待。我还没有完全掌握所有的"魔法"。

基本上,我需要访问Javascript中的Location对象,这些对象都包含0-N坐标。我确信模型设置正确,每个坐标都有一个location_id。

我使用以下方法获得了Location对象的解析JSON:我放入

  def index
     @locations = Location.all.to_json
  end 

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

var theLocations = <%= @locations.html_safe %>;

然而,当我在日志中显示这个变量时,它并没有显示坐标,这有点道理。问题是,我计划迭代所有的位置,并为每个位置创建一个具有相关坐标的javascript var。然后,这些变量将作为对象传递给谷歌地图。

基本上,我计划做一些类似(伪代码)的事情:

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.
    }
}

我只是不知道该怎么办。如何获取位置内坐标的参考?

快速而肮脏的答案是在to_json调用中传递一个参数:

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

您可能还想考虑通过重写as_json并在此之后将对象呈现为JSON来创建自定义JSON结构。