La mia domanda qui è la ricerca delle migliori pratiche, consigli generali e intuizioni, piuttosto che una soluzione a un problema specifico.Best practice per la strutturazione di un'applicazione "grandi" Rails
Sono nelle prime fasi della pianificazione di un progetto Rails che considero piuttosto ampio. Al suo livello più semplice offre un CMS cookie-cutter agli utenti target. Quindi gli utenti si registrano e scelgono un sottodominio e ricevono un sito Web piuttosto semplice con CMS.
Pertanto l'intera applicazione è di circa 4 '' lati diversi ad esso:
- Un sito di vendita di vendita del prodotto per gli utenti finali - www.myapp.com
- Un area di amministrazione centrale, dove il personale può accedere in e gestire gli account ecc - www.myapp.com/superadmin
- degli utenti propri siti web - subdomain.myapp.com
- Gli utenti area di amministrazione/CMS - subdomain.myapp.com/admin
Quindi quello che sto cercando è la migliore pratica per strutturare l'app. cioè dovrebbe essere inserito in un'unica enorme applicazione o dovrebbe essere diviso in 2 (o più) app più piccole?
Se distribuito come un'unica applicazione, è possibile visualizzare i problemi relativi al routing sia come sito Web di vendita sia come sito Web degli utenti per un set di percorsi radice, inoltre non vorrei che i percorsi impostati per il sito Web di vendita fossero accessibili tramite il siti web degli utenti. Qualche cosa può essere fatto sia all'interno di Rails o a livello di Apache (riscrittura mod?) Per garantire che non vi sia alcun mix di percorsi?
Se suddiviso su 2 o più applicazioni, come si ottengono le applicazioni che condividono lo stesso database? E 'anche una buona idea? Ci sono dei benefici dal dividere l'applicazione (come isolare i problemi in una zona dell'app, piuttosto che portare tutto giù)?
Mi rendo conto che questo post solleva alcune domande diverse, ma apprezzo qualsiasi consiglio e opinione che tu possa darmi.
Buona domanda, mi piacerebbe sentire le riflessioni della gente anche su questo. Rails 3 è impostato per avere app incorporabili, quindi potresti inserire un'app di amministrazione nella tua app di base, ma non sono sicuro di quale sia la cosa migliore da fare fino a quel momento. – PreciousBodilyFluids