单个或多个rails应用程序

时间:2012-09-27 14:25:31

标签: ruby-on-rails ruby-on-rails-3 database-design architecture subdomain

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

他们的共同点是:

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

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

  • 一个具有不同命名空间的应用
  • 很少有共享用户表的应用
  • 别的什么?

1 个答案:

答案 0 :(得分:1)

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

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

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

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

How to create a Shared Login Service across Multiple Domains?