1

我想创建一个包含多个子域的站点,每个子域都提供不同的功能。

他们的共同点是:

  • 布局
  • 用户
  • 为该用户付款

那么,设计架构的最佳方式是什么(在 RoR3 上):

  • 一个具有不同命名空间的应用
  • 很少有共享用户表的应用程序
  • 别的东西?
4

1 回答 1

1

如果您将所有网站保留在同一个应用程序中,您应该确保问题域都相似,功能相似,只有内容不同(例如问答网站上的所有变体,但内容/域不同覆盖)。如果是这种情况,可能值得将它们保存在同一个站点中,因为它可以让您轻松共享登录信息和其他内容,如模板/代码。

否则恕我直言,您最好将它们拆分为单独的应用程序,这些应用程序共享代码和用户数据库,但在其他方面是不同的,并且随着它们的增长可能会出现分歧,同时在有意义的地方共享。

如果您分离应用程序,您可以将共享代码/模板放入 gem 或库(毕竟这就是 rails 的启动方式),然后您在所有应用程序之间共享,和/或将任何公共服务放入另一个后端 Web 应用程序中为他们提供服务,但用户从未见过。

登录不会跨域持续存在,因此您只能共享用户名/密码,而不是让他们持续登录,除非您创建一个与所有应用程序对话的服务。有关更多详细信息,请参阅此答案。

如何创建跨多个域的共享登录服务?

于 2012-09-27T16:27:03.097 回答