petehamilton / citier

CITIER (Class Inheritance & Table Inheritance Embeddings for Rails) is a solution for simple Multiple Class Inheritance in Rails.
88 stars 24 forks source link

Project status #34

Open jonlhouse opened 13 years ago

jonlhouse commented 13 years ago

Hello, First let me say that I think this Gem/plugin is amazing compared to the alternatives I've researched. I'm ready to adopt this as my main modeling foundation and am happy to debug and possibly contribute to the project. The web application I'm developing has a 3-4 month development window so this project should also mature it that time. I do have a couple quick questions:

1) Is anyone aware of any "gotchas" in terms of persistance, validation or associations? 2) What is the state of the primary maintainer? I've seen him MIA from the commits and issues for the last month or so. I've pulled from DouweM in the meantime and it seems other are continuing to push development which is great. 3) Any update on the testing front? 4) Any predicted compatibility issues with new version of rails? This Gem seems to work more on the DB level by creating the views.

Thanks in advance, John

surzycki commented 13 years ago

I have been playing around with it for a bit, and from what I can tell the main issue that could be a show stopper is the :dependent => :destroy doesn't seem to work on child models

For instance as child citier model

has_many :promotions, :dependent => :destroy

Any promotions hanging off this child model will not be destroy when the parent is destroyed

jonlhouse commented 13 years ago

Thanks for the warning... any idea if a after_destroy filter could be used to destroy children "manually"?

surzycki commented 13 years ago

You could, but i this is indicative of a greater problem, that being calls are not passed down the inheritance chain.

I would strongly suspect that automatic assignments for associations are not handled properly as well as other items.

While this is a very cool and interesting project, it is not ready for prime time