我刚刚切换到Rails 6 (6.0.0.rc1),默认情况下,它与Rails-UJS一起使用网络包商 gem。我希望在我的一些模块中使用Rails UJS来提交来自以下函数的表单:
const form = document.querySelector("form")
Rails.fire(form, "submit")在安装了Webpacker的以前的Rails版本中,Rails引用在我的模块中似乎是“全局可用的”,但是现在我在调用Rails.fire…时得到了这一点。
ReferenceError: Rails is not defined如何使来自Rails @rails/ujs 的对特定模块或对我的所有模块可用?
在我设置的…下面
app/javascript/controllers/form_controllers er.js
import { Controller } from "stimulus"
export default class extends Controller {
// ...
submit() {
const form = this.element
Rails.fire(form, "submit")
}
// ...
}app/javascript/controllers.js
// Load all the controllers within this directory and all subdirectories.
// Controller files must be named *_controller.js.
import { Application } from "stimulus"
import { definitionsFromContext } from "stimulus/webpack-helpers"
const application = Application.start()
const context = require.context("controllers", true, /_controller\.js$/)
application.load(definitionsFromContext(context))app/javascript/packs/application.js
require("@rails/ujs").start()
import "controllers"谢谢!
发布于 2019-08-18 11:00:48
在我的app/javascript/packs/application.js里
import Rails from '@rails/ujs';
Rails.start();然后在我所写的任何模块,控制器,组件中:
import Rails from '@rails/ujs';发布于 2019-09-30 04:21:48
首先,使用纱线添加rails/ujs:
yarn add @rails/ujs并添加到config/webpack/Environ.js中。
const webpack = require('webpack')
environment.plugins.prepend('Provide',
new webpack.ProvidePlugin({
$: 'jquery',
jQuery: 'jquery',
Popper: ['popper.js', 'default'],
toastr: 'toastr/toastr',
ApexCharts: ['apexcharts', 'default'],
underscore: ['underscore', 'm'],
Rails: ['@rails/ujs']
})
)
module.exports = environment配置和加载Rails js。
# pack/application.js
require("@rails/ujs").start()
global.Rails = Rails;然后:这是结果->

发布于 2019-06-10 22:09:35
只需将其添加到您的environment.js文件中,下面是我的(使用引导程序和jquery):
const {environment} = require('@rails/webpacker')
const webpack = require('webpack')
module.exports = environment
environment.plugins.prepend(
'Provide',
new webpack.ProvidePlugin({
$: 'jquery',
jQuery: 'jquery',
jquery: 'jquery',
'window.jQuery': 'jquery',
"window.$": "jquery",
Popper: ['popper.js', 'default'],
Rails: ['@rails/ujs']
})
)https://stackoverflow.com/questions/56128114
复制相似问题