2010-02-04 49 views
0

您可以安裝一個Rails,然後將其用於多個應用程序。例如,我想有以下結構:單個安裝多個應用程序的Rails

siteroot/app1 (rails) 
siteroot/subsite1 (regular static html site) 
siteroot/app2 (rails) 
siteroot/subsite2 (regular static html site) 

等等...

,這是什麼最好的做法是什麼?

回答

0

Rails只是一個構建在Ruby語言之上的框架。
聽起來好像你在問如何使用一臺安裝了Rails的服務器來爲多個Rails應用程序提供服務。所以你需要爲每個應用程序啓動一個Web服務:

siteroot/app1 $ script/server -p 80 -e production (+ option for daemonize server, I forget) 
siteroot/app1 $ cd ../app2 
siteroot/app2 $ script/server -p 81 -e production (+ option for daemonize server, I forget) 

我對你的「子應用程序」有點困惑。他們爲什麼是子應用程序,爲什麼他們不能通過處理主應用程序的相同Web服務呈現?

2

它可能在技術上是可行的,但它當然不被支持或打算。記住,公約超過配置。當您通過rails appdir製作新的Rails應用程序時,您正在製作一個應用程序,並且其中的所有內容都是該應用程序的一部分。這不是Rails的安裝。您的Rails安裝在其他地方(我/ var/lib/gems)關閉,構成Rails的所有代碼將在多個應用程序之間共享。

總之,最好的做法是在兩個獨立的目錄中的兩個獨立的應用程序。您沒有任何理由想要合併兩個應用程序。如果他們需要共享資源或數據庫,它應該是一個具有不同控制器的應用程序,或者是具有共同代碼的兩個獨立應用程序被提煉成一個庫或插件。

+0

我明白Rails是如何安裝的以及有很多應用程序與許多安裝的想法。所以我想真正的問題是,創建這麼多的應用程序是否存在性能問題,而不是有重用某些文件的方式?許多應用程序將執行類似的功能,儘管由於商業原因它們完全分開。看起來在每個應用程序中實現類似的功能都不會很乾。也許答案是將可重用代碼放入我自己的寶石或其他可重用選項中? – kidbrax 2010-02-04 19:17:40

+0

是的,大型項目的答案是將可重用代碼提取到寶石中,然後許多應用程序可以共享這些寶石。 您的性能問題是分開的,這取決於您的部署環境。 – 2010-02-04 19:38:24

+0

剛剛意識到@meager幾乎是說在他的回答中,但是要感謝大家 – kidbrax 2010-02-04 19:45:19

相關問題