Ich habe ein Problem mit einem dynamischen aktiven Administratorbereich. Ich versuche, einen Bereich für jeden "Manager" eines "Projekts" in meiner App zu erstellen. Die Bereiche scheinen jedoch nicht aktualisiert zu werden, wenn ein neuer Manager erstellt (oder einem Projekt zugewiesen) wird, aber sie werden aktualisiert, wenn ich den Server neu starte. Der Code "funktioniert" also per se aber offensichtlich nicht so, wie ich es gerne hätte. Ich bin ein Ruby / Rails Noob, also bin ich mir nicht sicher, ob ich etwas tun muss, um den Scope auf irgendeine Art zu "erneuern".
Als eine FYI verwende ich Rails 3.2 auf Heroku Cedar mit ActiveAdmin
Hier ist der Code in Frage (der funktioniert, aber erst nach dem Neustart des Servers neue Manager einbringt):
%Vor%Und das gesamte Active-Admin-Projektmodell:
%Vor%Hier ist eine tatsächliche Lösung für dieses Problem ... Aldo Filter stattdessen ist wünschenswerter Stabilität und Wartung weise, das sieht besser aus in ActiveAdmin und ist benutzerfreundlicher, da Bereiche schön aussehen Tabs.
Es ist ein bisschen ein Hack, aber es ist eine praktikable Lösung, wo angemessen:
Der Trick besteht darin, die Bereiche in einem before_filter auf der Controller-Indexaktion zu aktualisieren .
Dies könnte schlecht werden, wenn Sie viele Bereiche auf einer Ressource erstellt haben (Sie können jedoch leicht einige Grenzen setzen)
%Vor%Wahre dynamische Bereiche innerhalb der AA-Registerblöcke funktionieren nicht. Damit meine ich, dass Änderungen in der Manager-Tabelle nicht in den zum Zeitpunkt der Initialisierung erstellten dynamischen Bereichen widergespiegelt werden. Siehe auch: Ссылка . Was Sie versuchen könnten, ist die Verwendung von Filtern anstelle von Bereichen. Dann können Sie etwas schreiben wie:
%Vor%und Änderungen in den Managereigenschaften werden angezeigt (nach der Seitenaktualisierung), ohne den Server neu zu starten. Überprüfen Sie auch Ссылка
Beachten Sie auch, dass aktive Datensatzbereiche unterschiedlich sind! von aktiven Admin-Bereichen. Vielleicht möchten Sie
überprüfenRails lädt Klassen nur einmal im Produktionsmodus. Dies bedeutet, dass Ihre Bereiche nur einmal aufgerufen und dann zwischengespeichert werden. Aus diesem Grund erscheinen neue Bereiche erst nach einem Neustart. Das Gleiche gilt auch, wenn Sie in Ihrem Fall den Vornamen des Vorgesetzten bearbeiten.
Ich denke, die Lösung könnte sein, ein Lambda oder Proc zu verwenden, aber in den wenigen Minuten, die ich damit spielte, war ich nicht erfolgreich. Es ist möglicherweise nicht möglich, wie activeadmin geschrieben wird.
Tags und Links ruby ruby-on-rails heroku activeadmin