2012-01-08 109 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

相关问题