Best way to share ActiveRecord models and data between different Rails Apps?

markquezada picture markquezada · Nov 29, 2010 · Viewed 7.8k times · Source

I have several rails applications that will use the same core set of Models and data, for example:

  • Apps
  • Developers
  • Categories

Each app builds on top of this core data and uses it in different ways. For example, I might have something like this in another app:

  • Activity
  • Users
  • Apps (shared)
  • Developers (shared)
  • Categories (shared)

What is the best way to share the Models and data between them? The Apps, Developers and Category data will all be the same for every app so I would rather not have to duplicate the data in every app's database.

EDIT: I'm thinking through a couple of possible solutions:

  • Rails engines (would solve the duplicate Models in different apps problem, but not the shared data issue)
  • Using ActiveResource to access the core data (solves the shared data, but not the shared model issue)

Answer

Keith Gaddis picture Keith Gaddis · Nov 30, 2010

I'm using a shared database to solve the shared data problem between heroku and a server on EC2 which does some background processing I can't do on heroku. In my case I'm using the same application, but really all I'm doing is using delayed_job on the EC2, so I'm only using the models from the app there. If I were going to use them in another application, I would probably go through the trouble of creating a gem to use between them.