1

したがって、私はレールの初心者であることを認めなければならないので、非常に明白な何かを見落としているのではないかと心配していますが、Gmaps4Rails gem でエラー メッセージが表示され続けます。周りを見回しても、この問題はどこにも見つからないので、根本的に重要なことを忘れてしまったので、他の誰もこの問題を抱えていないようです.

ページを更新するたびにすべてが魔法のように機能するので、私は近くにいることを知っているので、それはタイミングの問題であることを知っています. それが役立つ場合は、Bootstrapも使用しています。

私が取得し続けるエラーメッセージは次のとおりです。

「ドキュメント」で「書き込み」を実行できませんでした: 明示的に開かない限り、非同期に読み込まれた外部スクリプトからドキュメントに書き込むことはできません。

コードを表示:

<strong>Map:</strong>
<div id="map-canvas"/></div>



<% content_for :scripts do %>
<script src="//maps.google.com/maps/api/js?v=3.13&amp;sensor=false&amp;libraries=geometry" type="text/javascript"></script>
<script src='//google-maps-utility-library-v3.googlecode.com/svn/tags/markerclustererplus/2.0.14/src/markerclusterer_packed.js' type='text/javascript'></script>
<script type="text/javascript">

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

<% end %> 

Application.html.erb コード:

<body>

<ul class="nav nav-tabs">
  <li><%= link_to 'Services', services_path %></li>
  <li><%= link_to 'Users', users_path %></li>
  <li><%= link_to 'Sign In', user_sessions_new_path %></li>
  <li><%= link_to "Log Out", logout_path, method: :delete %></li>
  <li>You are signed in as : <%= session[:username] %></li>
</ul>

<%= yield %>
<%= yield :scripts %>
</body>

コントローラーコード:

def index
    @services = Service.all
    @hash = Gmaps4rails.build_markers(@services) do |service, marker|
      marker.lat service.lat
      marker.lng service.long
    end
  end

だから、私が試したことのいくつかは含まれています:

  • 'callback=initialize' を Google マップ API スクリプトに含め、ページが読み込まれた後に onload を呼び出します。
  • 想像できるほぼすべての場所にスクリプトを配置する

そして、インターネットの周りからかなりの数の他の人がいますが、それらのどれも機能しません. お知らせ下さい。

4

1 に答える 1

0

jquery を使用して、dom Ready でスクリプトを実行してみてください。

$(function() {
  handler = Gmaps.build('Google');
  handler.buildMap({ provider: {}, internal: {id: 'map-canvas'}}, function(){
    markers = handler.addMarkers(<%= raw @hash.to_json %>)
    handler.bounds.extendWith(markers);
    handler.fitMapToBounds();
  });
})
于 2014-07-02T17:59:38.460 に答える