在不同的Rails应用程序之间共享ActiveRecord模型和数据的最佳方法是什么?

12

我有几个Rails应用程序将使用相同的核心模型和数据,例如:

  • 应用程序
  • 开发人员
  • 类别

每个应用程序都建立在这个核心数据之上,并以不同的方式使用它。例如,在另一个应用程序中可以像这样使用:

  • 活动
  • 用户
  • 应用程序(共享)
  • 开发人员(共享)
  • 类别(共享)

什么是分享模型数据的最佳方法?每个应用程序的应用程序、开发人员和类别数据都将是相同的,因此我不想在每个应用程序的数据库中重复数据。

编辑: 我正在思考几种可能的解决方案:

  • Rails引擎(可以解决不同应用程序中重复的模型问题,但无法解决共享数据问题)
  • 使用ActiveResource访问核心数据(解决了共享数据,但无法解决共享模型问题)

在您的第一个可能的解决方案中,数据共享是否成为问题,因为每个应用程序都部署到不同的服务器上? - lulalala
已经有一段时间了,自从我问过这个问题,但是据我所记,是的,那就是问题所在。每个Rails应用程序都在不同的服务器上。 - markquezada
1个回答

4
我正在使用共享数据库来解决Heroku和在EC2上执行某些后台处理的服务器之间的共享数据问题。在我的情况下,我正在使用相同的应用程序,但实际上我只是在EC2上使用delayed_job,因此我只是在那里使用应用程序中的模型。如果我要在另一个应用程序中使用它们,我可能会费心创建一个gem,在它们之间使用。

有趣...我实际上需要做非常类似的事情。(我也在使用Heroku。) 你所说的共享数据库是指除了Heroku之外的其他数据库吗?在我的情况下,我需要立即拆分核心内容,但我没有想过使用gem来完成这个任务。 - markquezada
是的,我使用Amazon RDS托管了数据库,我的应用程序在Heroku上与其通信。大约两周后,Heroku推出了他们的PostgreSQL附加组件(http://blog.heroku.com/archives/2010/11/10/heroku_postgresql/),这对我也有用。实际上,我可能更喜欢它,但这就是生活。 - Keith Gaddis

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接