我正在尝试在我的rails应用程序中正确设置传单,我遇到了一些麻烦。我遵循此处列出的步骤Github Leaflet Repo。我已经在顶部做了一些微不足道的事情,现在正在Headers标题下。
我正在使用OpenStreetMaps,所以我的leaflet.rb文件看起来像这样。 (我必须自己创建这个文件,因为它还不存在)
Leaflet.tile_layer = 'http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png'
Leaflet.attribution = '© <a href="http://openstreetmap.org">OpenStreetMap</a> contributors, <a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>'
Leaflet.max_zoom = 18
现在,我正在尝试插入传单地图的视图当前看起来像这样。
<% provide(:title, 'Map') %>
<h1>Map</h1>
<div id="map"><%
map(:center => {
:latlng => [51.52238797921441, -0.08366235665359283],
:zoom => 18
})
%>
</div>
<p>Find me in app/views/dynamic_pages/map.html.erb</p>
当我启动我的rails服务器时,div中只有空白区域,即没有地图。 div在我的css文件中设置为高度为500px,如果这有任何区别,我不认为它。
我在这里做错了什么?
答案 0 :(得分:5)
我相信你现在已经弄清楚了......但是万一其他人被卡住了。 Leaflet-rails documentation遗漏了有关如何发生这种情况的详细信息,但地图帮助 在视图中可用。它必须在<%= %>
标签中才能显示;上面的问题是erb标签缺少=
它应该是这样的,
<div id="map">
<%=
map(:center => {
:latlng => [51.52238797921441, -0.08366235665359283],
:zoom => 18
})
%>
</div>
作为旁注,erb标记中的=
告诉解释器以下代码是一个表达式,意味着作为字符串返回给文档。如果没有=
这样<% %>
的错误评估代码,则不会尝试返回代码。有关详情,请参阅this博客文章。