1

レールは初めてですので、ご容赦ください。私はまだすべての「魔法」を完全には理解していません。

基本的に、JavascriptでLocationオブジェクトにアクセスする必要があります。これらのオブジェクトにはすべて0-N座標が含まれています。モデルが正しく設定されており、各座標にlocation_idがあると確信しています。

次のメソッドを使用して、Locationオブジェクトの解析されたJSONを取得することができました。

  def index
     @locations = Location.all.to_json
  end 

コントローラで、ビューでこれにアクセスしました

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

ただし、この変数をログに表示すると、座標は表示されません。これは理にかなっています。つまり、私はすべての場所を反復処理し、それぞれについて、関連する座標を使用してjavascript変数を作成することを計画していました。これらの変数は、オブジェクトとして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.
    }
}

どうやってこれに取り組むのかよくわかりません。ロケーション内の座標への参照を取得するにはどうすればよいですか?

4

1 に答える 1

1

迅速で汚い答えは、to_json呼び出しでパラメーターを渡すことです。

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

その後、オブジェクトをオーバーライドしてJSONとしてレンダリングすることにより、カスタムJSON構造を作成することを検討することもできます。as_json

于 2012-07-07T22:10:45.610 に答える