Classy Inheritance simplifies the definition and implementation of one object depending on another object. For example, a User object depending on a Person object. If you do the following:
class User < ActiveRecord::Base
depends_on :person, :attrs => [:first_name, :last_name, :email]
You will get @user.first_name, @user.last_name and @user.email functionality. So, direct usage of these attributes can be used on your form and the Person associated is created/maintained for you. e.g.:
<% text_field :user, :first_name %>
In this release:
Classy Inheritance now adds support for the standard Rails association options.
If your depends_on call includes the :as attribute (polymorphic associations), the Rails association used is :has_one, otherwise it’s :belongs_to.
So, you can now add options such as :dependent and :class_name.
As there are multiple option combination choices, I haven’t tested them all. So, please let me know if you run into an issue.
There is a wiki, forum and issue tracking for Classy Inheritance at http://stonean.com