2

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

1

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.

+0

Pouvez-vous détailler comment vous avez corrigé cela? –

4

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.