想要为多个站点/域使用1 rails应用程序

时间:2010-02-08 20:07:06

标签: ruby-on-rails dns

我的客户需要为大约5个应用开发相同的自定义CMS。所有应用程序都具有“相似”但不同的外观和感觉,我真的希望有一个rails应用程序处理这个,只需根据需要修改布局/视图。是否有宝石/插件或先例?

4 个答案:

答案 0 :(得分:6)

如果网站之间的差异纯粹是风格和静态内容,那么Doug的建议将会奏效 - 例如,如果你基本上只是“剥皮”。但是,如果差异更大,那么我会谨慎地采用这种方法。您可以很容易地完成维护噩梦,所有业务逻辑都包含在案例陈述和大量特殊案例代码中,并通过您的应用程序传播。如果你想将网站分成不同的服务器或者对某些网站进行重大的功能更改而不是其他网站,那么你真的会感到痛苦。

如果您预计网站之间存在任何重大差异,您可能需要考虑将它们作为单独的Rails项目与共享组件一起开发。将他们将共享的代码放入gem或插件中,并为他们不共享的属性保留单独的项目。对于前期开销的小幅增加,你可以在未来获得更大的灵活性。

答案 1 :(得分:3)

您可以从DHH's Account Location插件开始,但要将其修改为使用顶级域名(TLD)而不是子域名。它是一个非常简单的库,但它完成了工作。请务必通过与域名相关联的Account来确定您应用中的所有搜索范围。

答案 2 :(得分:0)

几年前,我专门为此目的制作了一些东西。我有一段时间没碰过它,但是github上有一些网络活动。 Rails Multisite Plugin

答案 3 :(得分:0)

Paulbonner的回应几乎反映了我自己的想法:如果网站的功能会随着时间的推移而发生变化 - 以后支持这将是一场噩梦。

所以我可能会创建几个单独的Rails应用程序,但我会使用类似Rails Cells的东西来开发所有网站都很常见的功能。然后我将使用svn:externals或Git中的等效文件在所有应用程序中共享所有单元格。