2016-07-04 17 views
2

私はレールが新しく、どのように正確にこれらのマーカーをループすることができるのだろうかと思っています。私のJS変数 "count"は認識されず、私はルビー配列をループするか、別の解決策が必要な助けが必要です。Rubyが埋め込まれたルーピングGoogleマップマーカー?

1.Add MarkersControllerでのアクション:

def index 
     respond_to do |format| 
     format.json do 
      markers = Marker.all.map do |marker| 
      { 
       lat: marker.lat, 
       lng: marker.lng 
      } 
      end 
      render json: markers 
     end 
     end 
    end 

2.In routes.rb

get "/markers", to: "markers#index" 

function initMap() { 
      var mapDiv = document.getElementById('map'); 
      var map = new google.maps.Map(mapDiv, { 
       center: {lat: 44.540, lng: -78.546}, 
       zoom: 8 
      }); 

      var total = <%= mapcount %> 

      var javascriptcount = 0; 

      var count = 0; 

     <% arraylat = [] %> 
     <% arraylng = [] %> 

     <% mapposttotal.each do |q| %> 
      <% arraylat << q.lat %> 
      <% arraylng << q.lng %> 
     <% end %> 

      for (; javascriptcount <= total; javascriptcount++) { 
      var marker = new google.maps.Marker({ 
       position: {lat: <%= arraylat[count] %>, lng: <%= arraylng[count] %>}, 
       map: map, 
       title: 'Hello World!' 
      }); 
      count = count + 1; 
      console.log() 
      } 

     var Clicker = document.getElementById('PostIt'); 


     Clicker.addEventListener('click', function() { 
      window.location='/newpost.html';}, false); 

     } 


    <% end %> 
+0

erbコードとjavascriptが混在するのはかなり悪いです。あなたはajaxコール(マーカーがdbに格納されている場合)を使ってマーカー情報を取得し、 'success'レスポンスにマーカー情報を入れるのがよいでしょう – kasperite

答えて

1

あなたがレールに新しく追加されたとして、私はこのソリューションを提案することができます3.Javascript:

function initMap() { 
    $.getJSON("/markers", function(data) { 
    // All your js code to populate markers go in here. 
    }) 
} 

これは基本的にどのように動作するかです。あなたのニーズに合うようにコードを調整してください

関連する問題