ActiveRecord shared models


#1

I’m attempting to build a somewhat non-standard architecture around the
Rails apps that I’m building for a customer. We’re looking for a way to
be able to share models across projects using RubyGems.

The reasons we want to take this approach are:

  1. Shared model logic, without duplication
  2. Quick development of new applications
  3. Small test suite per application
  4. Mini-apps (potentially non-web) without full rails stack

I have seen solutions related to symlinking the app/models folders into
each application or using svn:externals, but these both seem suboptimal.

Ideally, I’d like to be able to:

require ‘rubygems’
require ‘models’

and have access to any of my models.

I have experienced some headaches with plugins and I expect to see more.
Does anyone have any suggestions for implementing this type of
architecture or am I doomed to have one monolithic Rails app?

Best,
Michael G.


#2

On Thu, 19 Mar 2009 15:44:47 +0100
Michael G. removed_email_address@domain.invalid wrote:

I’m attempting to build a somewhat non-standard architecture around the
Rails apps that I’m building for a customer. We’re looking for a way to
be able to share models across projects using RubyGems.

Have you tried the new plugin system in rails 2.3? It may not be exactly
what you’re looking for, but it allows you to have models in plugins.

SH

Starr H.
Check out my Helpdesk RailsKit: http://railskits.com/helpdesk/


#3

Starr H. wrote:

On Thu, 19 Mar 2009 15:44:47 +0100
Michael G. removed_email_address@domain.invalid wrote:

I’m attempting to build a somewhat non-standard architecture around the
Rails apps that I’m building for a customer. We’re looking for a way to
be able to share models across projects using RubyGems.

Have you tried the new plugin system in rails 2.3? It may not be exactly
what you’re looking for, but it allows you to have models in plugins.

We have looked at this as a potential solution, however, it does not fit
our requirement of being able to use models outside of the full Rails
stack.

Best,
Michael G.