0

私の Rails アプリケーションでは、ユーザーには複数の顧客がいます。ユーザーがログインしている場合、ホームページに顧客の場所を含む Google マップが表示されます。gmaps4rails gem を使用して正常に動作しています。

ただし、最初のログインでは、ユーザーは顧客を持たず、地図にはオーシャン ビューが表示されます。これとは異なり、顧客が作成されていない場合は、現在のユーザーの場所を表示したいと思います。彼はどこから私の Rails アプリケーションにアクセスしていますか。

この問題を解決するにはどうすればよいですか?

4

1 に答える 1

1

ものすごく単純

書くしかない

<%# view %>
<% if current_user.customers.present?  %>
  <%= gmaps4rails(@json) %>
<% else %>      
  <%= gmaps(:map_options => {:detect_location => true, :center_on_user => true, :auto_zoom => false, :zoom => 12, :auto_adjust => true}, :markers => {:data => @json} ) %>
<% end %>

そして、javascript コールバックを次のように追加します。

<script type="text/javascript" charset="utf-8">
  // display map of current location if customers is not present
  $(document).ready(function(){
    Gmaps.map.callback = function() {
      Gmaps.map.createMarker({Lat: Gmaps.map.userLocation.lat(),
              Lng: Gmaps.map.userLocation.lng(),
              rich_marker: null,
              marker_picture: ""
      });
    }
  });
</script>
于 2013-08-27T10:24:01.637 に答える