【问题标题】:Creating a different "genre" of my website (i.e., I have a stackoverflow-equivalent and I want to create a serverfault-equivalent)创建我的网站的不同“类型”(即,我有一个等效的 stackoverflow,我想创建一个等效的 serverfault)
【发布时间】:2010-09-13 11:25:38
【问题描述】:

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

最好的方法是什么?

方法一:分叉代码

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

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

方法 2:保留一个应用程序

每当我的应用程序收到请求时,请检查域。如果是rapgenius.com,则将SITE_NAME 常量设置为"rapgenius"。在面向用户的实体(歌曲、博客文章等)上创建一个 genre 字段,并根据 SITE_NAME 更新我的查询以使用正确的流派

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

  • 优点:非常灵活
  • 缺点:工作量很大!

想法?

【问题讨论】:

    标签: ruby-on-rails fork


    【解决方案1】:

    我觉得第二种方法更好。

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

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

    可能值得看看 Rails i18n 的东西,用于根据域名“翻译”静态文本。这样您就可以避免为每个要显示的字符串编写辅助方法。

    那么您应该能够真正轻松地“特许经营”该网站 - 添加静态字符串的翻译、新域的句柄,也许还有一些特定于网站的图像或 CSS,然后您就完成了!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-28
      • 2015-07-23
      • 2020-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多