Frage

Ich habe den Active_admin Gem in einer Arbeitsschienenanwendung installiert. Danach verlangsamte sich die App spürbar. Es dauert ungefähr 4-5 Sekunden, um eine neue Seite zu erhalten. Einige Funktionen sind gebrochen.

Liegt dies möglicherweise darauf, dass sich aktiv Administrator auf Entwicklungen und Konflikte stützt, die entstehen, weil ich meine eigene Authentifizierung habe? Ich hatte bereits ein Benutzermodell mit Methoden wie 'current_user' und meldete sich in Funktionen an.

Mit anderen Worten, sollten Sie den aktiven Administrator nicht verwenden, wenn Sie Devise zur Authentifizierung verwenden? Ich sehe in der Dokumentation nichts darüber.

Ich bin auf Rails 3.1, PostgreSQL -Datenbank, wenn dies wichtig ist.

War es hilfreich?

Lösung

Die Verlangsamung in Schienen 3.1 ist Ein bekanntes Problem Dies liegt hauptsächlich an der Art und Weise, wie aktiver Administrator mit der neuen Asset -Pipeline interagiert. Das Problem ist - soweit mir bekannt - nur beim Ausführen im Entwicklungsmodus vorhanden ist (wenn Sie also die Produktion einsetzen, sollte es verschwinden).

Da ist auch ein Problemlautproblem in der Entwicklung, die eine Leistungswirkung haben könnte. Aber meine persönliche Erfahrung ist, dass dies nicht der Hauptdarstellungskiller ist.

Um das Problem der langsamen Umgebung in der Entwicklung zu überwinden, besteht eine schnelle Lösung darin, die zu installieren Rails-dev-Twaks Juwel. Dies verhindert, dass Rails Vermögenswerte regeneriert, wenn die eingehende Anfrage eine Anfrage ist (Bilder, CSS, JS usw.).

In Bezug auf Ihre zweite Frage: Active Admin arbeitet nur mit Devise. Es ist jedoch durchaus möglich, einen anderen Authentifizierungsmechanismus in Ihrem Frontend zu verwenden und sich nur auf Devise in Active Admin zu verlassen. Sie sollten dafür sorgen, dass diese Entstehung und Ihre eigene Authentifizierung nicht konflikt. Sie können Entwicklungen und aktives Administrator ändern, um eine andere Methode zum Abrufen des aktuellen Benutzers zu verwenden. Standardmäßig aktiv Admin verwendet current_admin_user - nicht current_user. Sie können die Authentifizierungseinstellungen für den aktiven Administrator ändern config/initializers/active_admin.rb. Für weitere Informationen lesen Sie Die Authentifizierungsdokumentation.

Andere Tipps

Wenn Ihre Administratormodelle haben belongs_to und has_many Beziehungen und das Standardverhalten von ActiveADmin laden Ihre Datenbank praktisch in RAM. Es wird empfohlen, dass Sie nur die wirklich benötigten Filter hinzufügen.

Wenn Sie die genauen Felder für jede Filtersammlung angeben, werden die Ausführungszeit und den Speicherausdruck der Abfrage erheblich reduziert. Standardmäßig sucht ActiveDmin nach: ID- und: Name -Attributen. Eine Abfrage, die ich von mehreren Sekunden auf 0,7 ms auf reduziert habe. JAWOHL!!

z.B

filter :account, collection: Account.unscoped.select(‘id, name’)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top