> Secondly, does anyone have any pointers on how I can make this work in
> Active Record in a nice clean way.
In a domain i'm workin in, this type of thing also came up, and I chose
to split it in a somewhat similar way using abstract classes. Create an
abstract class, Wheels, put all common code in there. I chose to
include the equivalent of that mapping table as a constant, so in your
example a "CarToWheelsClassHash" Constant, and then create sub-classes
for each of the wheels table. Override the ActiveRecord Methods for the
Wheel class, and then re-override them in the subclasses to bring them
back.
Wheel < ActiveRecord::Base
self.abstract_class = true
CarToWheelsClassHash = {:ford => "FordWheel"}
def self.abstract_find(car_brand, *normalfindargs)
CarToWheelsClassHash[car_brand].constantize.find(*normalfindargs)
end
[other code common to all wheels models]
end
FordWheel < Wheel
code specific to the ford wheels model
end
hope that makes sense to you, i actually really like this solution so
far on my end.
--
Posted via http://www.ruby-forum.com/.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby
on Rails: Talk" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---