В настоящее время я пытаюсь переключиться с конвейера ресурсов на веб-упаковщик и пытаюсь выяснить, как получить доступ к упакованному javascript из. js .erb представлений.
Все мои формы выглядят так:
<% form_for ..., remote: true do %>
И все мои контроллеры реагируют так:
def create
respond_to do |format|
format.js
end
end
Но внутри шаблонов .js.erb
(create.js.erb
) для приведенного выше примера), у меня нет доступа к чему-либо из app/javascript/packs/application.js
, как я сделал, когда я использовал конвейер активов.
Если мой create.js.erb
выглядит так:
$('form').prepend("<%=j form_errors(object) %>")
Я получаю ошибку Uncaught ReferenceError: $ is not defined
, потому что он не может получить доступ к jQuery.
Вот мой файл среды веб-пакета:
# config/webpack/environment.js
const { environment } = require('@rails/webpacker')
const coffee = require('./loaders/coffee')
const webpack = require('webpack');
environment.plugins.append('Provide', new webpack.ProvidePlugin({
$: 'jquery',
jQuery: 'jquery',
}));
environment.loaders.prepend('coffee', coffee)
module.exports = environment
Любые идеи, как получить доступ к веб-упаковке js в. js .erb шаблонах.