app/views/people/show.html.erb 内にこの JavaScript コードがあります。Google Maps API v3 を使用しています。しかし問題は、これが非常に目障りだということです。私が望んでいたのは、js コードを coffeescript の中に入れたいということです。そして、経度/緯度の値を渡してマップに反映できるはずです。
<% unless @person.addresses.blank? %>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
function initialize() {
<%
if @person.addresses.first.latitude.blank? && @person.addresses.first.longitude.blank?
lat_long = @person.organization.latitude_longitude
else
address = @person.addresses.first
lat_long = [address.latitude, address.longitude]
end
lat = lat_long[0]
long = lat_long[1]
%>
var myLatlng = new google.maps.LatLng(<%= lat %>, <%= long %>);
var mapOptions = {
zoom: 17,
center: myLatlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
var map = new google.maps.Map(document.getElementById('map_canvas_show'), mapOptions);
var marker = new google.maps.Marker({
position: myLatlng,
map: map,
title: 'Hello World!'
});
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
<div id="map_canvas_show"></div>
<% end %>
<h1>
<%= @person.name %> <small><%= link_to(t('general.edit'), edit_person_path(@person)) %></small>
</h1>
<h3>
<%= @person.organization_names(current_organization) %>
</h3>
<div>
<%#= image_tag @person.fb_profile_pic_large %>
</div>
<div class="sfield field_group">
<div class="ls"><%= t('.addresses')%></div>
<% @person.addresses.each do |address| %>
<div class="rs"><%= address.address %></div>
<% end %>
</div>
<div class="sfield field_group">
<div class="ls"><%= t('.phone_numbers')%></div>
<% @person.phone_numbers.each do |phone_number| %>
<div class="rs field_group"><%= phone_number.phone_number %></div>
<% end %>
</div>
<div class="sfield field_group">
<div class="ls"><%= t('.offices')%></div>
<% @person.office_names.each do |office_name| %>
<div class="rs"><%= office_name %></div>
<% end %>
</div>