Javascript Ruby on Rails-传单Rails';引用错误:未定义L';

Javascript Ruby on Rails-传单Rails';引用错误:未定义L';,javascript,ruby-on-rails,ruby,leaflet,rubygems,Javascript,Ruby On Rails,Ruby,Leaflet,Rubygems,我不熟悉RubyonRails和传单,但我正在尝试使用gem“传单Rails”1.6版和Rails 6.0.3.2版实现一个映射 在一个相似的问题上有相似的线索 加载页面时,我收到“ReferenceError:L未定义”。。我已经按照安装指南进行了安装,并且在最近2个晚上一直在尝试实现map,但没有成功。我能够使映射正常工作的唯一方法是将下面的代码添加到我试图实现映射的HTML文件中 <link rel="stylesheet" href="https://

我不熟悉RubyonRails和传单,但我正在尝试使用gem“传单Rails”1.6版和Rails 6.0.3.2版实现一个映射

在一个相似的问题上有相似的线索

加载页面时,我收到“ReferenceError:L未定义”。。我已经按照安装指南进行了安装,并且在最近2个晚上一直在尝试实现map,但没有成功。我能够使映射正常工作的唯一方法是将下面的代码添加到我试图实现映射的HTML文件中

<link rel="stylesheet" href="https://unpkg.com/leaflet@1.6.0/dist/leaflet.css"/>
<script src="https://unpkg.com/leaflet@1.6.0/dist/leaflet.js"/> 
当我刷新页面并检查HTML时,脚本正在运行以下代码

var map = L.map('map', {});
map.setView([51.52238797921441, -0.08366235665359283], 18);
L.tileLayer('http://{s}.tile.cloudmade.com/YOUR-CLOUDMADE-API-KEY/997/256/{z}/{x}/{y}.png', {
          attribution: 'Your attribution statement',
          maxZoom: 18,
}).addTo(map);
如果我查看文件的头部,它似乎引用了application.js文件,但在哪里可以看到它引用了与传单相关的任何内容

<script src="/packs/js/application-9fe6f817df469889a178.js" data-turbolinks-track="true"></script>

我对下一步该做什么感到迷茫,因为我对Rails非常陌生

我将非常感谢任何帮助。你好,罗里


Blockquote跳过gem,只需通过纱线安装传单。您可以使用“添加传单”添加依赖项。作为gems分发的前端包在Rails 6中是一个过时的概念。通常存在问题的地方,因为他们总是落后于包装马克斯

我是按照传单rails github页面上过时的安装说明操作的。我通过一个gem安装了传单,它现在在rails 6中已经过时了,所以我所有初始化映射的尝试都没有成功

//=require传单注释是针对旧资产管道的链轮指令,不会在Webpack中执行任何操作。在Webpack中,您可以在主清单(或导入)中使用其require(“传单”)功能。这是一个非常不同的野兽,你正在遵循过时的指示。github.com/rails/webpacker–max

然后,我通过Thread安装了传单,并在application.js中使用
require(传单)
对其进行初始化,并将传单css添加到它自己的文件中,并在我正在处理的html.erb文件中引用了该文件。然后,它只是简单地使用内置的map helper函数,基本的map正在工作

 <%= map(:center => {
  :latlng => [51.52238797921441, -0.08366235665359283],
  :zoom => 18
}) %>
{
:latlng=>[51.52238797921441,-0.08366235665359283],
:缩放=>18
}) %>

感谢Max为我解决了这个问题。

跳过gem,只需通过纱线安装传单即可。您可以使用
纱线添加传单
添加依赖项。作为gems分发的前端包在Rails 6中是一个过时的概念。通常有问题的地方,因为他们总是落后于包装。要求传单注释是旧资产管道的链轮指令,在Webpack中不会做任何事情。在Webpack中,您可以在主清单(或导入)中使用其
require('传单')
功能。这是一个非常不同的野兽,你正在遵循过时的指示。嗨,麦克斯,谢谢你回复这些信息,我真的很感激。它一直让我发疯,我一直在不折不扣地关注每件事,但它没有起到任何作用,但你说的话现在有道理了,为什么它不起作用!我刚刚通过纱线安装了它,所以我会给它一个让地图显示的机会,然后我会回来报告。再一次,谢谢。Rory.只是一个快速更新,在我安装了Thread之后,我花了7分钟来实现它。。真正有助于找到正确的方向,而不是使用过时的技术。再次感谢你,很高兴你成功了。您可以选择自己回答问题,以帮助遇到相同问题的其他人。
<script src="/packs/js/application-9fe6f817df469889a178.js" data-turbolinks-track="true"></script>
 <%= map(:center => {
  :latlng => [51.52238797921441, -0.08366235665359283],
  :zoom => 18
}) %>