J'ai passé des rails 4.2.6 aux rails 5.1, puis j'ai commencé à utiliser webpack.
Toutes les configurations pour l'utilisation de webpack l'ont fait, mais je n'arrive pas à comprendre comment charger les fichiers javascript sur la page ActiveAdmin.
ActiveAdmin charge app/assets/javascripts/active_admin.js.coffee
par défaut.
Existe-t-il un moyen de charger des fichiers javascript groupés par webpack sur la page ActiveAdmin?Est-ce que ActiveAdmin peut charger javascript avec webpack? - Rails 5.1
Répondre
Webpack n'est pas encore officiellement supporté. L'approche que nous utilisons pour l'instant est de corriger le patch ActiveAdmin :: Views :: Header pour inclure des tags pour charger la sortie générée de Webpack, par exemple.
class ActiveAdmin::Views::Header < Component
def build(namespace, menu)
...
render "application/custom_header_tags"
end
end
Dans notre cas, notre custom_header_tags.erb utilise React On Rails mais quelle que soit l'intégration de substitution que vous préférez.
Je suis un peu en retard, mais je crois qu'il est préférable d'envelopper la méthode plutôt que de remplacer complètement la classe. En outre, la correction de singe Header
entraînera le rendu des étiquettes dans div avec id="header"
. Afin de les rendre à <head />
je l'ai fait ce qui suit:
ActiveAdmin::Views::Pages::Base.class_eval do
alias_method :original_build_active_admin_head, :build_active_admin_head
def build_active_admin_head(*args, &block)
original_build_active_admin_head(*args, &block)
within @head do render '/custom_headers' end
end
end
Mettre ce fichier à config/initializers
(de sorte qu'il ne sera pas rechargé chaque fois en mode de développement résultant en boucle infinie) dossier et créer un fichier app/views/_custom_headers.html.erb
avec tout ce que tu veux.
Pouvez-vous détailler comment vous avez corrigé cela? –