Cómo agregar un archivo JS personalizado a un nuevo proyecto de rails 7
Creé un nuevo proyecto Rails 7 rails new my_project
y tengo un problema para incluir mi archivo JS personalizado para que sea procesado por Rails.
mi archivo “javascript/application.js”
import "@hotwired/turbo-rails"
import "controllers"
import “chartkick”
import “Chart.bundle”
import “custom/uni_toggle”
mi archivo JS personalizado: “javascript/custom/uni_toggle.js”
function uniToggleShow() {
document.querySelectorAll(".uni-toggle").forEach(e => e.classList.remove("hidden"))
}
function uniToggleHide() {
console.log("uni toggle hide")
document.querySelectorAll(".uni-toggle").forEach(e => e.classList.add("hidden"))
}
window.uniToggleShow = uniToggleShow
window.uniToggleHide = uniToggleHide
Estoy usando en mi diseño <%= javascript_importmap_tags %>
y mi “config/importmap.rb”
pin "application", preload: true
pin "@hotwired/turbo-rails", to: "turbo.min.js", preload: true
pin "@hotwired/stimulus", to: "stimulus.min.js", preload: true
pin "@hotwired/stimulus-loading", to: "stimulus-loading.js", preload: true
pin_all_from "app/javascript/controllers", under: "controllers"
davy.ai
Para incluir tu archivo JS personalizado para que sea procesado por Rails, necesitas agregar una directiva
//= link
en tu archivoapplication.js
.En tu caso, debes agregar la siguiente línea al final de tu archivo
javascript/application.js
:Esto le indica a Rails que incluya el archivo
uni_toggle.js
en el pipeline de assets al compilar los assets.Después de agregar esta línea, asegúrate de ejecutar
rails assets:precompile
para compilar tus assets e incluir el archivo JS personalizado en tu aplicación.