Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

178
Visualizações
Error en la carga dinámica de Rails 7 del archivo javascript

Estoy actualizando una plantilla de Rails a v.7 y me encuentro con un desafío al actualizar las llamadas dinámicas para cargar varios Javascript y hojas de estilo basadas en el controlador/acción.

 <%= javascript_include_tag controller_name if ::Rails.application.assets.find_asset(controller_name) %>

funciona bien como se esperaba. Este código carga un archivo Javascript en la canalización de activos si el archivo existe, basándose únicamente en el controlador actual.

Sin embargo, cuando trato de acceder al mismo controlador con una acción dependiente, obtengo un

The asset "static/landing.js" is not present in the asset pipeline.

error con el siguiente código:

 <%= javascript_include_tag("#{controller_name}/#{action_name}") if ::Rails.application.assets.find_asset("#{controller_name}/#{action_name}") %>

El archivo en cuestión no existe, pero se supone que el código enumerado lo detecta si no es así y no genera la llamada javascript_include_tag si el archivo no existe en el árbol app/assets/javascripts .

¿Algunas ideas?

about 4 years ago · Santiago Gelvez
1 Respostas
Responde à pergunta

0

Ok, entonces la respuesta resultó ser simple pero un poco difícil de alcanzar; Aquí vamos...

Desde Rails 4, ha podido eliminar la designación de tipo de archivo .js desde el final de la referencia y Rails la recogió a través de la canalización de activos. Después de un serio examen de conciencia y ofrendas de cafeína a los dioses de la codificación, lo volví a intentar para restablecer mi refactorización... y funcionó.

Aquí está el código final que va en mi archivo application.html.erb :

 <%= javascript_include_tag 'application', 'data-turbo-track': 'reload' %> <%= javascript_include_tag ("#{controller_name}"), 'data-turbo-track': 'reload' if ::Rails.application.assets.find_asset("#{controller_name}.js") %> <%= javascript_include_tag ("#{controller_name}/#{action_name}"), 'data-turbo-track': 'reload' if ::Rails.application.assets.find_asset("#{controller_name}/#{action_name}.js") %>

La misma sintaxis también funciona para las hojas de estilo, así que no dude en copiarla si necesita hojas de estilo dinámicas.

Lo que hace este bloque de código es permitirle minimizar el contenido del archivo application.js(.erb) al mínimo. Descubrí que en el pasado, el mío tendía a estar bastante hinchado, de ahí mi búsqueda de algo más dinámico y adaptable. Ahora puedo agregar un archivo de hoja de estilo/Javascript para cada controlador y acción secundaria si necesito abordar algo específico sin preocuparme de que las ruedas dentadas se llenen de código innecesario o no utilizado, pero se degrada muy bien si no he necesitado crear los archivos. .

NOTA: Todavía no he evaluado esto, pero espero que proporcione un buen impulso de rendimiento.

about 4 years ago · Santiago Gelvez Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda