es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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"
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para incluir tu archivo JS personalizado para que sea procesado por Rails, necesitas agregar una directiva //= link en tu archivo application.js.

    En tu caso, debes agregar la siguiente línea al final de tu archivo javascript/application.js:

    //= link ./custom/uni_toggle.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.

Comments are closed.