Я перехожу с использования конвейера ресурсов на webpacker в Rails 5.2. Все мои ответы AJAX вызывают Uncaught ReferenceError: $ is not defined
в rails-ujs.js ошибках в консоли браузера.
Я настроил среду моего веб-упаковщика для включения jquery.
const { environment } = require('@rails/webpacker');
const webpack = require('webpack');
environment.plugins.append("Provide", new webpack.ProvidePlugin({
$: 'jquery',
jQuery: 'jquery',
Popper: ['popper.js', 'default']
}));
module.exports = environment;
Я импортировал rails-ujs и turbolinks в мой ../packs/application.js
import Rails from 'rails-ujs'
import 'activestorage'
import 'bootstrap'
...
import Turbolinks from "turbolinks"
Rails.start();
Turbolinks.start();
// Import application specific stuff
import 'application/javascripts'
Затем я пытаюсь добавить класс после завершения запроса. похоже на то, что показано в направляющих рельсов
https://guides.rubyonrails.org/working_with_javascript_in_rails.html#server-side-concerns
Мой файл show.js.erb выглядит следующим образом
$("#result").addClass("active")
Я получаю ошибку
Uncaught ReferenceError: $ is not defined
at <anonymous>:1:1
at processResponse (rails-ujs.js:282)
at rails-ujs.js:195
at XMLHttpRequest.xhr.onreadystatechange (rails-ujs.js:263)