我刚刚切换到Rails 6(6.0.0.rc1),默认情况下,它将Webpacker gem与Rails UJS一起用于Javascriptassets资源 .我想在我的一些模块中使用Rails UJS,以便从具有以下功能的函数提交表单:
const form = document.querySelector("form")
Rails.fire(form, "submit")
在以前安装了Webpacker的Rails版本中,Rails
参考在我的模块中似乎是"全球"可用的,但现在我在调用Rails.fire
时得到了这个…
ReferenceError: Rails is not defined
How can i make 100 from 101 available to a specific or to all of my modules?
在我的设置下面…
app/javascript/controllers/form_controller.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"
谢谢