2010-02-08 9 views
6

Ho un cliente che ha bisogno dello stesso CMS personalizzato sviluppato per circa 5 app. Tutte le app avranno un aspetto "simile" ma diverso e mi piacerebbe davvero che l'applicazione 1 rota gestisse questo aspetto e semplicemente modificasse il layout/le viste secondo necessità. C'è un gemma/plugin o un precedente per questo?Desidero utilizzare l'app 1 rotaia per più siti/domini

risposta

6

Il suggerimento di Doug funzionerà se le differenze tra i siti sono puramente stilistiche e di contenuto statico - ad esempio, se sei fondamentalmente solo "skinning". Ma sarei prudente seguendo questo approccio se le differenze saranno più coinvolte. Si potrebbe facilmente finire con un incubo di manutenzione, con tutta la logica aziendale circondata da dichiarazioni di casi e un sacco di codice di caso speciale diffuso attraverso l'applicazione. E sentiresti davvero il dolore se volessi mai separare i siti su server diversi o apportare modifiche funzionali significative ad alcuni dei siti ma non ad altri.

Se si anticipano differenze significative tra i siti, è consigliabile considerare di svilupparli come progetti Rails separati con componenti condivisi. Inserisci il codice che condivideranno in gemme o plug-in e riserva i progetti separati per gli attributi che non condividono. Per un piccolo aumento in testa in testa, ti acquisteresti molta più flessibilità lungo la strada.

3

È possibile iniziare con il plug-in DHH's Account Location come inizio, ma modificarlo per utilizzare il dominio di primo livello (TLD) anziché un sottodominio. È una libreria molto semplice, ma fa il lavoro. Assicurati di individuare tutti i reperti nella tua app tramite il numero Account associato al nome del dominio.

+0

grazie doug! scaverò attraverso questo ... – BandsOnABudget

0

Ho costruito qualcosa appositamente per questo scopo alcuni anni fa. Non l'ho toccato per un po ', ma c'è qualche attività di rete su github. Rails Multisite Plugin

0

La risposta di Paulbonner riflette più o meno quello che sto pensando io stesso: se i siti dovessero divergere in funzionalità nel tempo, sarebbe un incubo supportare in seguito.

Quindi probabilmente creerei diverse applicazioni Rails separate, ma vorrei usare qualcosa come Rails Cells per sviluppare funzionalità, che è comune a tutti i siti web. Quindi condividerei tutte le mie celle su tutte le applicazioni usando svn: esterni o equivalenti da Git.

Problemi correlati