0

配列を取り、データをjsonオブジェクトにロードしたいのですが、正確にそれを行う方法にこだわっています。

TripsController

def index
@trips = Trip.all
@markers = Array.new
@trips.each do |trip|
  for marker in trip.markers
    @markers.push(marker)
  end
end

@gmaps_options =
{
  "markers"     => { "data" => '[{ "lng": "-99.9018131", "lat": "31.9685988"},
                                 { "lng": "-102.552784", "lat": "23.634501"},
                                 { "lng": "-122.3667", "lat": "40.5833"},
                                 { "lng": "-121.8356", "lat": "39.7400"}
                                  ]', },
  "polylines"   => { "data" => ' [ [
                     {"lng": -99.9018131, "lat": 31.9685988},
                     {"lng": -102.552784, "lat": 23.634501},
                     ], [
                      { "lng": "-122.3667", "lat": "40.5833"},
                      { "lng": "-121.8356", "lat": "39.7400"}
                      ] ]' }
}

respond_to do |format|
  format.html # index.html.erb
  format.json { render json: @trips }
  end 
end

経度と緯度は現在ハードコーディングされていますが、@markers を緯度経度にロードしたいと思います。

"lng": @markers[0].longitude, "lat": @markers[0].latitude

このデータ オブジェクト全体が 1 つの文字列です。追加する必要があります

"lng": + "@markers[0].longitude" + , "lat": + "@markers[0].latitude"

すべてのマーカーオブジェクトに対して、いくつかのハッキーな方法でforループで文字列全体を作成します。もっと良い方法がなければならないと考えています。

ビューでは、マップは gmaps(@gmaps_options) で呼び出されます

どんな助けでも大歓迎です。

4

2 に答える 2