如何迭代这个Ruby代码,以便我可以在地图上动态显示标记?

时间:2018-06-12 18:38:05

标签: ruby-on-rails json ruby leaflet maps

我正在构建商店定位器应用程序,并且我尝试使用表示数据库中商店的标记来填充地图。我使用Geocoder gem将地址转换为纬度和经度,我使用Leaflet.js和leaflet-rails gem(基本上遵循本教程:https://github.com/axyjo/leaflet-rails)。我已经能够使用以下代码使用标记显示地图:

<uib-accordion-group class="list-group-item" ng-if="user.subordinates" ng-repeat="user in user.subordinates" ng-include="'managerTmp'" id="azqx">

我遇到的问题是从我的数据库中的数据中动态显示标记。我对Ruby和Rails相对较新,所以它证明非常艰难。我应该用每种方法迭代lat和lng值吗?我尝试过这样做,但是却遇到了很多语法错误。我甚至不确定代码的最后部分是什么形式。它是嵌套的哈希吗?

1 个答案:

答案 0 :(得分:2)

markers: Store.all.map { |store| {latlng: [store.latitude,store.longitude], popup: store.name}.是您失败的代码。

我认为您的想法是正确的,但您错过了地图块的结束}。试试:

markers: Store.all.map { |store| { latlng: [store.latitude, store.longitude], popup: store.name } }

对于数据结构,看起来map方法需要一个哈希(对象),其中应该包含标记哈希(对象)数组的标记键,每个哈希都具有latlng和popup属性。 latlng属性需要包含纬度和经度值的数组,并且popup属性应该包含放入弹出窗口所需的数据字符串。