Question

J'ai installé le petit bijou de active_admin dans un travail rails application. Après avoir fait cela, l'application a ralenti sensiblement vers le bas. Il faut environ 4-5 secondes pour obtenir une nouvelle page. Certaines fonctionnalités est cassé.

Est-ce peut-être dû à l'administrateur actif se fondant sur les conflits et concevoir liés parce que j'ai ma propre authentification? J'avais déjà un modèle utilisateur avec des méthodes comme « current_user » et signe en fonctions.

En d'autres termes, vous pas censé utiliser administrateur actif à moins d'utiliser pour l'authentification concevoir? Je ne vois rien à ce sujet dans la documentation.

Je suis sur Rails 3.1, base de données Postgresql, si cette question.

Était-ce utile?

La solution

Le ralentissement dans Rails 3.1 est de problème connu qui est la plupart du temps en raison de la façon dont la active interagit Admin avec la nouvelle Asset pipeline. La question est - pour autant que je sache -. Présent que lors de l'exécution en mode développement (donc lorsque vous déployez à la production, il devrait aller)

Il y a aussi un problème de fuite de mémoire dans le développement qui pourraient avoir un impact sur les performances. Mais mon expérience personnelle est que ce n'est pas le principal tueur de performance.

Pour surmonter le problème de l'environnement dans le développement lent, une solution rapide est d'installer le rails-dev-tweaks gemme. Cela permettra d'éviter Rails de régénération actifs lorsque la requête entrante est une demande d'actifs (images, .css, .js etc.).

Quant à votre deuxième question: Admin Actif fonctionne uniquement avec concevoir. Mais il est tout à fait possible d'utiliser un mécanisme d'authentification différent dans votre frontend et seulement compter sur dans Admin Actif Devise. Vous devez veiller à ce que la cause de votre propre Concevoir et l'authentification ne sont pas en conflit. Vous pouvez modifier et concevoir l'administrateur actif à utiliser une autre méthode pour récupérer l'utilisateur actuel. Par défaut utilise Active Admin current_admin_user - pas current_user. Vous pouvez modifier les paramètres d'authentification pour l'administrateur actif dans config/initializers/active_admin.rb. Pour plus d'informations, lisez la documentation d'authentification .

Autres conseils

Si vos modèles d'administration ont des relations belongs_to et has_many et le comportement par défaut de ActiveAdmin sera pratiquement charger votre base de données dans la RAM. Il est recommandé d'ajouter que les filtres vraiment nécessaire.

Définition des champs précis pour chaque collection de filtre réduira également considérablement requête temps d'exécution et l'empreinte mémoire. Par défaut, ActiveAdmin recherche: id et: attributs nom. Une requête j'ai appliqué cela réduit de quelques secondes à .7ms. OUI !!

par exemple.

filter :account, collection: Account.unscoped.select(‘id, name’)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top