Sto creando un JSON-only application, è fondamentalmente un Rails più snello, con meno middleware e meno moduli. Questa è un'applicazione in corso su Rails 4.Come mantenere DRY con ActiveAdmin o RailsAdmin, separato dall'applicazione principale
Voglio sviluppare una semplice app che possa amministrare i dati nel database per l'app principale. Per questo mi piacerebbe usare Active Admin o Rails Admin. Ma entrambe le opzioni usano in qualche modo i modelli sottostanti e le loro convalide, i requisiti e tali da costruire in cima.
Ciò significa che devo condividere almeno i modelli tra l'applicazione principale e l'applicazione RailsAdmin.
Come farei meglio a fare questo? C'è una buona guida su come costruire un'applicazione di amministrazione in un'app separata per i binari accanto a quella principale, invece di averla integrata?
Come nota a margine: un altro buon motivo per mantenere l'amministratore in un'applicazione separata dall'app principale, ma su un database condiviso, è la miriade di dipendenze, un gioiello come ActiveAdmin.
Si noti inoltre che non sono semplicemente interessato a eseguire l'amministrazione su un dominio diverso o su un server diverso, ma soprattutto per mantenere l'app principale snella e focalizzata. E per mantenere le dipendenze con cui qualcosa come ActiveAdmin arriva, dalla mia app principale.
note a piè pagina:
- Né ActiveAdmin né RailsAdmin sono problemi per la prestazione in se stessi. È che richiedono il middleware, mentre una app Rail solo JSON richiede solo pochi moduli, helper e middleware! Rails-API, offre uno stack così sottile. Le prestazioni non riguardano Admin vs. no admin, ma Full-Rails vs Rails-API.
- Le prestazioni non sono il mio problema principale, le dipendenze e lo spessore sono! Ora ho un'applicazione Rails così sottile, mirata e snella, che può misurarsi con la maggior parte delle app Sinatra :). Con solo tre gemme aggiuntive (ognuna con alcune dipendenze proprie) e una pila molto sottile di middleware, posso aggiornare, gestire ed eseguire il debug molto facilmente.
Più pratico: Io Non avere Devise (E 'un JSON-API, così token autenticato), non hanno eventuali pareri o modello-motore. No Formtastic, No Paperclip, Rmagic, Kminari (cercapersone) e così via e così via. Tutto ciò verrà aggiunto alla mia app quando inserisco "solo un amministratore".
Vorrei esaminare l'estrazione delle classi del modello in una gemma che potreste richiedere in entrambe le app. Temo di non poter offrire un consiglio specifico, in quanto non l'ho mai fatto, ma in teoria dovrebbe funzionare. Devi condividere il database.file yml in qualche modo, o semplicemente assicurarsi che rimanga aggiornato in entrambi i posti. –
Grazie per il suggerimento. Questo, in effetti, suona come un'ottima soluzione per me. – berkes