创建我的网站的不同“类型”(即,我有一个stackoverflow等效,我想创建一个serverfault等效)

时间:2010-09-12 21:21:23

标签: ruby-on-rails fork

我的网站Rap Genius解释说唱歌词。我想创建一个新的网站,Rock Genius,它解释摇滚歌词 - 否则它将是相同的(相同的布局,相同的数据库架构;像Serverfault是Stackoverflow)

最好的方法是什么?

方法1:分叉代码

分享Rap Genius代码,更改相关部分(例如,“Rap” - >“Rock”),创建一个新数据库并前往城镇。

  • 优点:可以让它快速运作
  • 缺点:向两个应用程序添加功能会有点痛苦。此外,不可能让Rap Genius在数据库级别访问Rock Genius的数据

方法2:保持单一应用程序

每当请求进入我的应用程序时,请检查域。如果是rapgenius.com,请将SITE_NAME常量设置为"rapgenius"。在面向用户的实体(歌曲,博客帖子等)上创建genre字段,并根据SITE_NAME

更新我的查询以使用正确的类型

在面向用户的字符串之上创建一个抽象层,我可以编写<%= welcome_message %>而不是Welcome to Rap Genius!,并welcome_message()考虑SITE_NAME

  • 优点:很多灵活性
  • 缺点:很多工作!

思想?

1 个答案:

答案 0 :(得分:1)

第二种方法对我来说听起来更好。

你已经强调了主要的优点和缺点 - 它肯定会有更多的工作,但维护起来会更友好。第三,第四,第五站点是否有机会?如果是这样,毫无疑问这是正确的方法。

您可能还可以更轻松地共享用户帐户,信誉和任何其他类型的基于社区的功能。

基于域名,可能值得查看Rails i18n内容来“翻译”静态文本。这样你就可以避免为你想要显示的每个字符串编写辅助方法。

然后你应该能够非常轻松地“特许经营”网站 - 添加静态字符串的翻译,新域名的句柄,以及一些特定于网站的图片或CSS,你就完成了!