0

我的 Rails 配置中有一个错误,不知道该怎么做。它不会干扰我的任何代码,但我想知道为什么会出现这个问题,以及在不久的将来我是否会遇到问题。我正在使用带有 webpack 的 Rails 7。使用可操作电缆和通道时发生错误,在内部使用 javascript:

document.addEventListener('turbolinks:load', () => {})

错误消息:未捕获的 ReferenceError:Rails 未在我的浏览器控制台中定义。

Uncaught ReferenceError: Rails is not defined
    js application.js:17
    Webpack 3

应用程序.js

require("@rails/ujs").start()
require("turbolinks").start()
require("@rails/activestorage").start()
require("channels")
require("jquery")
import '../stylesheets/application.scss'
//import '../src/message.js'




Rails.start()
Turbolinks.start()
ActiveStorage.start()

config/webpack 中的 environment.js

const { environment } = require('@rails/webpacker')

const webpack = require('webpack')
environment.plugins.prepend('Provide',
    new webpack.ProvidePlugin({
        $: 'jquery/src/jquery',
        jQuery: 'jquery/src/jquery'
    })
)


module.exports = environment

额外的宝石

gem 'tether-rails'
gem 'jquery-rails'

纱线锁

"@rails/ujs@^7.0.1":
  version "7.0.1"

这就是我所知道的关于他们有rails ujs的所有文件,但我不确定我的问题到底是什么。我在项目配置方面做错了吗?我在设置导轨方面缺乏经验,对此有点迷失。

4

1 回答 1

0

你不需要打电话

Rails.start()
Turbolinks.start()
ActiveStorage.start()

您可以删除这 3 行,我猜您对其他示例感到困惑,例如https://guides.rubyonrails.org/webpacker.html#using-webpacker-for-javascript库首先被导入然后启动的地方。在您的示例require("@rails/ujs").start()中,您同时做这两件事。

所以我的猜测是,删除这 3 行,问题就会消失。

于 2022-01-17T05:47:02.173 回答