Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 显示视图中的gmaps4rails_Ruby On Rails_Ruby_Google Maps_Gmaps4rails - Fatal编程技术网

Ruby on rails 显示视图中的gmaps4rails

Ruby on rails 显示视图中的gmaps4rails,ruby-on-rails,ruby,google-maps,gmaps4rails,Ruby On Rails,Ruby,Google Maps,Gmaps4rails,我想在show视图中放置一个gmaps4rails地图,但在使用当前位置构建标记时遇到了问题。我找不到关于这个话题的任何东西。有可能吗?(很抱歉,我是一个完全的初学者) 到目前为止,我就是这么做的 def show @comments = @spot.comments @photos = @spot.photos @hash = Gmaps4rails.build_markers(@spot) do |spot, marker| marker.lat spot.latitude

我想在show视图中放置一个gmaps4rails地图,但在使用当前位置构建标记时遇到了问题。我找不到关于这个话题的任何东西。有可能吗?(很抱歉,我是一个完全的初学者)

到目前为止,我就是这么做的

def show
 @comments = @spot.comments
 @photos = @spot.photos

@hash = Gmaps4rails.build_markers(@spot) do |spot, marker|
   marker.lat spot.latitude
   marker.lng spot.longitude
   marker.infowindow spot.name
end
编辑:

视图:


handler=Gmaps.build('Google'); buildMap({provider:{},internal:{id:'map'}},function(){ var marker=handler.addMarker(); handler.map.centerOn(marker); }); ...
您必须将
addMarker
替换为
addMarkers
,因为您传递的arg是一个数组

如果传递对象,可以使用
addMarker


但如果使用
addMarkers
将代码更改为:

 var markers = handler.addMarkers(<%=raw @hash.to_json %>);
 handler.map.centerOn(markers[0]);
var markers=handler.addMarkers();
handler.map.centerOn(markers[0]);

几个问题……你的物体,
@spot
,是否有
纬度
经度
?我写了一个关于这个问题的答案,这可能会让你们在这里受益@贾斯汀:是的。当在索引视图中使用“点”而不是“点”时,它都可以工作。好的,您当前是否收到错误消息?(还要检查javascript控制台)。确保定义了
@spot
,确保您的
show.html.erb
具有适用于GMap4Rails的
javascript
markers=handler.addMarkers();
)您能解释一下定义[@spot]
@spot=spot.find(params[:id])
是什么意思吗。也许您可以从您的
视图
控制器
错误
中粘贴更多代码,这将有助于我们更快地找到答案,而不仅仅是假设错误是什么,仍然没有标记出现,我得到了与以前相同的错误再次提供您的html请我猜这是有趣的部分
handler=Gmaps.build('Google');handler.buildMap({provider:{},internal:{id:'map'},function(){var marker=handler.addMarkers([{“lat”:50.0510570000001,“lng”:19.941979}]);handler.map.centerOn(marker);})
 var markers = handler.addMarkers(<%=raw @hash.to_json %>);
 handler.map.centerOn(markers[0]);