Wie man DRY mit einem ActiveAdmin oder RailsAdmin getrennt von der Hauptanwendung behält

9

Ich baue eine JSON-only-Anwendung , es ist im Grunde eine schlankere Rails, mit weniger Middleware und weniger Module. Dies ist eine Anwendung, die in Rails 4 erstellt wird.

Ich möchte eine einfache App entwickeln, die die Daten in der Datenbank für die Haupt-App verwalten kann. Dazu möchte ich Active Admin oder Rails Admin . Aber beide Optionen verwenden irgendwie die zugrundeliegenden Modelle und ihre Validierungen, Anforderungen und dergleichen, um darauf aufzubauen.

Dies bedeutet, dass ich mindestens die Modelle zwischen der Hauptanwendung und der RailsAdmin-Anwendung teilen muss.

Wie würde ich das am besten machen? Gibt es eine gute Anleitung, wie man eine Administrationsanwendung in einer separaten App neben der Hauptanwendung erstellt, anstatt sie zu integrieren?

Als Nebenbemerkung: Ein weiterer guter Grund, den Administrator in einer separaten Anwendung von der Haupt-App zu halten, aber in einer gemeinsam genutzten Datenbank, ist die Vielzahl von Abhängigkeiten, ein Juwel wie ActiveAdmin kommt mit.

Beachten Sie auch, dass ich nicht nur daran interessiert bin, Admin auf einer anderen Domain oder einem anderen Server zu betreiben, sondern hauptsächlich, um die App schlank und fokussiert zu halten. Und um die Abhängigkeiten, mit denen etwas wie ActiveAdmin kommt, aus meiner Hauptanwendung herauszuhalten.

Fußnoten:

  • Weder ActiveAdmin noch RailsAdmin sind Probleme für die Leistung an sich. Sie benötigen Middleware, während eine JSON-Rail-App nur sehr wenige Module, Helfer und Middleware benötigt! Rails-API, bietet so einen schlanken Stack. Bei der Leistung geht es nicht um Admin vs. No Admin, sondern um Full-Rails vs Rails-API.
  • Leistung ist nicht mein Hauptproblem, die Abhängigkeiten und Blähungen sind! Ich habe jetzt eine Rails-Anwendung, die so schlank, fokussiert und schlank ist, dass sie sich mit den meisten Sinatra-Apps messen kann :). Mit nur drei zusätzlichen Edelsteinen (jede mit ein paar eigenen Abhängigkeiten) und einem sehr dünnen Stapel von Middleware kann ich sehr einfach upgraden, verwalten und debuggen.

Praktischer: Ich habe keine Devise (es ist eine JSON-API, also mit Token authentifiziert), habe keine Ansichten oder Template-Engine. Kein Formtastic, keine Büroklammer, Rmagic, Kminari (Pager) und so weiter und so weiter. All dies wird zu meiner App hinzugefügt, wenn ich "nur ein Admin" ziehe.

    
berkes 08.08.2013, 18:41
quelle

2 Antworten

1

Dieser Blogbeitrag beschreibt einen interessanten Ansatz: Ссылка

Sie verwenden eine fast leere App als Container und mounten ihre eigentlichen Apps als Rails-Engines.

    
attilakreiner 29.08.2013, 06:55
quelle
1

Haben Sie die Auswirkungen des Hinzufügens von Tools wie ActiveAdmin auf die Geschwindigkeit Ihrer Rest-API gemessen? Wenn nicht, klingt das für mich nach einer vorzeitigen Optimierung.

Wenn die API-Geschwindigkeit tatsächlich Auswirkungen auf eine geladene, aber nicht verwendete Bibliothek hat, können Sie mehrere Anwendungen erstellen und die Modelle in einem git-Submodul freigeben.

    
phoet 08.08.2013 21:27
quelle