Der Active Admin-Bereich legt für jede Instanz eines verwandten Modells fest

8

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%     
Sean Powell 04.05.2012, 14:33
quelle

4 Antworten

10

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%     
Brant Sterling Wedel 06.08.2013 19:55
quelle
3

Ich fand das für mich funktioniert:

ActiveAdmin-Datei

%Vor%

Modell

%Vor%

Ein bisschen spät in der Antwort, aber hoffentlich hilft es jemandem aus.

    
pdurbin 19.10.2012 08:27
quelle
2

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üfen

Ссылка

    
Sjors Branderhorst 15.06.2012 13:25
quelle
1

Rails 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.

    
Jared 11.05.2012 03:41
quelle