2014-04-06 86 views
3

我正在尝试在我的rails应用程序中正确获取传单设置,并且遇到了一些麻烦。我遵循这里列出的步骤Github Leaflet Repo。我已经完成了顶部的小事,现在在标题标题下。使用Ruby on Rails设置传单

我使用OpenStreetMaps,所以我的leaflet.rb文件看起来像这样。 (我要创建这个文件我自己,因为它不存在)

Leaflet.tile_layer = 'http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png' 
Leaflet.attribution = '&copy; <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,如果这有什么不同,我认为它不会。

我在这里做错了什么?

回答

3

我相信你现在已经明白了这一点......但万一别人被卡住了。 Leaflet-rails documentation忽略了这种情况的细节,但地图帮手在视图中可用。它必须在<%= %>标签中显示;上面的问题是,ERB标签缺少=它应该是这样的,

<div id="map"> 
    <%= 
    map(:center => { 
     :latlng => [51.52238797921441, -0.08366235665359283], 
     :zoom => 18 
    }) 
    %> 
</div> 

作为一个方面说明,=在ERB标签告诉解释,下面的代码意味着要返回一个表达式一个字符串到文档。没有=这样的012b这样的erbage会评估代码,但不会尝试返回它。欲了解更多信息,请参阅this博客文章。