Я только что перешел на Rails 6 (6.0.0.rc1), который по умолчанию использует гем Webpacker для ресурсов Javascript вместе с Rails-UJS. Я хочу использовать Rails UJS в некоторых моих модулях для отправки форм из функции с:
const form = document.querySelector("form")
Rails.fire(form, "submit")
В прежних версиях Rails с установленным Webpacker ссылка Rails
, казалось, была "глобально" доступна в моих модулях, но теперь я получаю это при вызове Rails.fire
…
ReferenceError: Rails is not defined
Как я могу сделать Rails
из @rails/ujs
доступным для определенного или для всех моих модулей?
Ниже моей настройки ...
приложение / JavaScript / контроллеры / form_controller.js
import { Controller } from "stimulus"
export default class extends Controller {
// ...
submit() {
const form = this.element
Rails.fire(form, "submit")
}
// ...
}
приложение / 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))
приложение / JavaScript / пакеты / application.js
require("@rails/ujs").start()
import "controllers"
Спасибо!