2012-01-08 46 views
2

我們有兩個網站建立在相同數據之上。他們的設計(和數據呈現)完全不同,但底層數據是相同的。rails:兩個站點 - 一個數據庫

兩者都有自己的頂級域名。

這種結構的最佳方式是什麼?有2個不同的rails應用程序?或兩套意見?

我曾經想過一個rails引擎,但是,他們只會共享模型,而不是視圖和控制器,所以我不確定這是否是最好的方法。

建議,文章鏈接等最受歡迎!

回答

3

我們有幾個應用程序在使用共享數據庫Aframe與一組共享模型。

嘗試這樣的結構:

app_one 
    rails app structure 
    ... 
app_two 
    rails app structure 
    ... 
shared 
    models 

然後在每一個應用程序,用戶在使用共享的共享/ models目錄的一切。

將兩個應用程序配置爲具有相同的數據庫詳細信息。

這意味着您可以編寫可同時觸摸這兩個應用程序的測試。

+0

+1即兩個應用程序。 – 2012-01-08 11:56:17

+0

是不是這個,本質上是手卷發動機?有了引擎,你也可以共享模型。 – phil 2012-01-08 16:04:59

+0

引擎方法會假設這些ruby應用程序是基於Rails的。有些可能是小型的單文件腳本,其他可能是從隊列中拾取任務的守護進程。 – stef 2012-01-08 19:05:25

2

取決於您是否需要訪問這兩個應用程序中的所有數據,或僅僅是特定的部分。

我不認爲在兩個應用程序之間複製代碼是明智的做法。如果您完全不同地呈現數據,則可能需要以不同的方式訪問它。例如,在移動網站上,您可能只從一個表格加載,而在常規網頁上,您將一次從5個表格加載。

有兩個應用程序會給你更多的靈活性,比共享一些代碼。但這當然取決於應用程序的大小。對於10款車型,我並不在意在兩款應用中有重複的東西,但對於150款車型來說,這是一個完全不同的故事。

+0

+1另外,考慮到當前或未來的表格數量和應用程序的複雜性,也是如此。 – 2012-01-08 11:57:10

+0

我對它的看法越來越多(並且使用代碼來欺騙)我很想爲模型製作一個引擎。我知道數據就是數據。然後,每個應用程序都可以擁有控制器,視圖和任何可能需要的其他數據建模。 – phil 2012-01-08 16:06:21

+0

@phil你可以做到這一點,但如果數據庫不是很大,你可以輕鬆地使用兩個應用程序,並開心。有時候用不太完美的(一些複製品)去更明智,但更實際的解決方案。 – 2012-01-08 18:55:39

相關問題