【问题标题】:Setting up Leaflet with Ruby on Rails使用 Ruby on Rails 设置传单
【发布时间】:2014-04-06 22:39:35
【问题描述】:

我正在尝试在我的 rails 应用程序中正确设置传单,但遇到了一些问题。我正在按照Github Leaflet Repo 此处列出的步骤进行操作。我在顶部做了一些琐碎的事情,现在在标题标题下。

我正在使用 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 的高度,如果这有什么不同的话,我认为不会。

我在这里做错了什么?

【问题讨论】:

    标签: ruby-on-rails leaflet


    【解决方案1】:

    我相信你现在已经想通了……但万一其他人被卡住了。 Leaflet-rails documentation 省略了有关如何发生这种情况的详细信息,但地图助手 在视图中可用。必须在&lt;%= %&gt;标签中才能显示;上面的问题是erb标签缺少=应该是这个样子,

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

    附带说明,erb 标签中的= 告诉解释器以下代码是一个表达式,旨在作为字符串返回到文档中。像 &lt;% %&gt; 这样没有 = 的 erb 标记将评估代码,但不会尝试返回它。有关更多信息,请参阅this 博客文章了解更多信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-06-24
      • 1970-01-01
      • 1970-01-01
      • 2021-04-05
      • 1970-01-01
      • 2020-06-04
      • 2012-08-21
      相关资源
      最近更新 更多