如果没有内置到gem中,如何为标记添加id?

时间:2015-03-25 15:46:28

标签: ruby-on-rails google-maps-api-3 gmaps4rails

我从维基中获取了“为标记添加ID并稍后访问它们”的代码。

看起来像这样:

markers = ... // Fetch markers
Gmaps.store.markers = markers.map(function(m) {
  marker = handler.addMarker(m);
  marker.serviceObject.set('id', m.id); // You can add other attributes using set
  return marker;
});
handler.bounds.extendWith(Gmaps.store.markers);
handler.fitMapToBounds();

在我的控制器中,我尝试将 id 添加到地图标记的可用属性

 def map_markers model
   Gmaps4rails.build_markers(model) do |item, marker|
     marker.lat item.lat
     marker.lng item.long

     marker.id item.id

     marker.picture marker_picture(:real_estate)
     marker.infowindow string
   end
 end

我一直收到错误,因为id不是build_markers方法可用的属性。您只能根据https://www.omniref.com/ruby/gems/gmaps4rails/2.0.4/symbols/Gmaps4rails::MarkersBuilder#line=21

设置lat,lng,title,infowindow和图片

如果默认情况下Gmaps4rails.build_markers方法无法将 id 传递给每个标记的视图,该怎么办?

1 个答案:

答案 0 :(得分:1)

正如告诉in the wiki,您可以通过以下哈希添加自己的json内容:

marker.json({ id: item.id})