2016-05-12 7 views
0

私は、ログイン時にユーザーがベンダーを検索できるようにする機能を実装しようとしています。私はgeocoderとgmap4railsを使用しています。しかし、マップを設定してアプリを実行しようとすると、地図がまったく表示されません。Uncaught RangeError:呼び出しスタックの最大サイズを超えました

これが私の見解です:

<%= form_tag dashboard_path, :method => :get do %> 
<div class= "row"> 
    <p> 
    <%= text_field_tag :search, params[:search], class: "col-md-4"%> 
    <%= submit_tag "Search Near", class: "btn btn-info", :name => nil %> 
    </p> 
    </div> 
<% end %> 

<div style='width: 800px;'> 
    <div id="map" style='width: 9000px; height: 500px;'></div> 
</div> 

<script type="text/javascript"> 
    handler = Gmaps.build('Google'); 
    handler.buildMap({ provider: {}, internal: {id: 'map'}}, function(){ 
    markers = handler.addMarkers(<%=raw @hash.to_json %>); 
    handler.bounds.extendWith(markers); 
    handler.fitMapToBounds(); 
    handler.getMap().setZoom(15); 

}); 

</script> 

ダッシュボードビューのコントローラ:

def dashboard 
    if params.empty? 
     gflash notice: "you cant search without a term" 
     redirect_to "/" 

    elsif params[:search].present? 
     @vendors = Vendor.near(params[:search], 50) 
     @hash = Gmaps4rails.build_markers(@vendors) do |vendor, marker| 
      marker.lat vendor.latitude 
      marker.lng vendor.longitude 
      marker.infowindow vendor.discount_info 
      marker.picture ({ 
      "url" => "assets/marker.png", 
      "width" => 32, 
      "height" => 32}) 
     end 
    else 
     @vendors = Vendor.all 
     @hash = Gmaps4rails.build_markers(@vendors) do |vendor, marker| 
      marker.lat vendor.latitude 
      marker.lng vendor.longitude 
      marker.picture ({ 
      "url" => "assets/marker.png", 
      "width" => 32, 
      "height" => 32}) 

     end 
    end 

開発モードでは、私は、ブラウザを開いて、Webコンソールにログインしたときにエラーがあると述べた。

Uncaught RangeError: Maximum call stack size exceeded 

このエラーの原因はわかりません。地図のサイズを適切に設定しています。

+0

ブラウザのJavascriptコンソールにエラーが表示されますか? – pgaspar

+0

@pgaspar Webコンソールからのエラーを含めました – KhoaVo

答えて

0

問題が解決しました。コードが無限ループになったため、検索パラメータが空の場合にgmapがクラッシュし、マーカーを設定する場所がわからなくなったため、そのケースの経度と緯度を設定します。

関連する問題