You can do:
@hash = Gmaps4rails.build_markers(@soiltemps) do |soiltemps, marker|
marker.lat soiltemps.latitude
marker.lng soiltemps.longitude
marker.picture({"url" => "/logo.png",
"width" => 36,
"height" => 36})
marker.json({ link: soiltemp_url(soiltemps) })
end
and add the listeners in your js:
markers_json = <%=raw @hash.to_json %>;
handler = Gmaps.build('Google');
handler.buildMap({ provider: {}, internal: {id: 'map'}}, function(){
markers = handler.addMarkers(markers_json);
handler.bounds.extendWith(markers);
for (var i = 0; i < markers.length; i++) {
link = markers_json[i].link;
google.maps.event.addListener(markers[i].getServiceObject(), 'click', function(){
window.open(link);
})
}
handler.fitMapToBounds();
});