ハッシュを配列に構築してから、それぞれを 1 つの大きな配列にプッシュしています。これは問題なく動作します (私は Gmaps4Rails を使用しています) が、もっと Ruby の方法があるのではないかと思っています。
def index
@allpoints = []
@links = Link.find([1, 2, 3])
@links.each do |link|
linkpoints = []
link.link_points.each do |pt|
linkpoints << { :lat => pt.latitude, :lng => pt.longitude }
end
@allpoints << linkpoints
end
@data = @allpoints.to_json
end
解決策の編集:(私は以下のものを使用しました)元のものよりも短いですが、私の目には十分に読みやすくなっています:
def index
all_points = []
Link.find([1,2,3]).each do |link|
all_points << link.link_points.map { |pt| { lat: pt.latitude, lng: pt.longitude } }
end
@data = all_points.to_json
end