2010-02-08 45 views

回答

6

Doug的建議,將工作,如果站點之間的差異是純粹的風格和靜態內容 - 例如,如果你基本上只是「剝皮」。但是,如果差異會比這更多地涉及,那麼我會謹慎行事。你很容易就會遇到維護噩夢,所有的商業邏輯都被case語句和許多特殊情況代碼包圍在應用程序中。如果您想將網站分離到不同的服務器上,或者對某些網站進行重大功能更改,而不是其他網站,則您會感到非常痛苦。

如果預計在站點之間任何顯著的差異,你可能要考慮開發它們與共享組件獨立的Rails項目。將他們將分享的代碼放入寶石或插件中,併爲不共享的屬性保留單獨的項目。對於前面的開銷小幅增加,你會在路上爲自己買更多的靈活性。

3

您可以從DHH's Account Location插件開始,但將其修改爲使用頂級域名(TLD)而不是子域。它是一個非常簡單的庫,但它完成了工作。請確保將您的應用中的所有搜索範圍與該域名相關聯的Account範圍內。

+0

謝謝道格!我會通過這個挖掘... – BandsOnABudget

0

幾年前,我爲此專門建了一些東西。我有一段時間沒有觸及它,但是github上有一些網絡活動。 Rails Multisite Plugin

0

Paulbonner的迴應幾乎反映了我自己的想法:如果網站隨時間推移會發生功能分歧 - 這將是後來支持的噩夢。

所以我可能會創建幾個獨立的Rails應用程序,但我會用類似Rails Cells開發的功能,這是通用於所有網站。然後,我將使用svn:externals或Git中的等價物來分享所有應用程序中的所有單元。

相關問題