2016-05-16 5 views
0

gmaps4railsとgeocoder gemを使用して、現在のデータベースと一致するすべての場所を表示しています。これはコントローラのコードです。gmaps4rails - コントローラオブジェクトが空になっています

def map_view 
    @users = User.where(city: params[:city]) 
    @hash = Gmaps4rails.build_markers(@users) do |user, marker| 
     marker.lat user.latitude 
     marker.lng user.longitude 
    end 
    respond_to do |format| 
     format.html 
     format.js 
    end 
    puts 'coordinates', @hash 
end 

私はビューで@hashオブジェクトを使用しようとすると、オブジェクトがnullです。

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

上記のコードはビューにあります。マップは空のオブジェクトで表示されます。ブラウザのコンソールにこのエラーが表示されますUncaught RangeError:最大呼び出しスタックサイズがを超えました。

コントローラから印刷するとき、オブジェクトはnullではありません。 Here is the output from the server.

私は新規です。私はあなたの助けに感謝します。

答えて

0

marker.latmarker.lngの値がnilでないことを確認してください。このforumからも、"あなたのjsonでは、longitudelnglatitudeと置き換えて、latと置き換える必要があります。これをチェックしてくださいissue on GitHub

+0

渡された値は 'nil'ではありません。私は値が 'lat'と' long'で渡された後の問題だと思います。 – mbd

関連する問題