I have a similar situation where I have one application that acts as a
portal to 3 other applications.
The portal application’s database is VERY bare-bones and holds the
minimum amount of information
for my shared models. (Like users)
We turned our models into a plugin and had all the apps bring in the
plugin as an SVN external.
class User < ActiveRecord::Base
“*YOURAPPSNAME_” + ENV[“RAILS_ENV”] + “.” + “users”
So far this is serving us well - there are a few gotchas (some
expected, some not expected)…
All the DBs need to be on the same machine using this approach…even
though they are different databases.
Also - it makes any changes to that plugin cascade across all your
applications - so you need to account
for the way your applications interface with those models.
One major boost we’re seeing out of this approach is the ability to
decorate models in each one of the application.
So a user may get new methods and associations in application1 - we
can easily make a UserDecorator module in our
/lib folder to give the user these methods and associations.
Have you looked into sharing models between your apps using
http://railscasts.com/episodes;archive (episodes 94 and 95)