Turns out, I can create a relationship "on the fly" really easily. In any method I can add:
Asset.has 1, :asset_category1 and it just works. So yeah... I noticed something odd though and I'll address it in another post since it's not specific to this. On Jan 9, 12:48 pm, cult hero <[email protected]> wrote: > Okay, I hope this doesn't get to be too long, but... I'm trying to > figure out a "best practice" scenario for this and any help in its > implementation would be helpful. When I started the project I am > working on, I saw ActiveRecord's polymorphic relationships and > thought, "Perfect!" Then, I saw the way the tables were handled and > said, "Uhhh... no." I knew how I wanted the tables designed and I > wanted the ORM to work with me. Thus far, DataMapper has been > excellent. I know what I want to do is possible, but I'm not sure how > to get it done. > > Here are the models to consider: > > Asset > AssetCategory1 > AssetCategory2 > Category > > Now, they are currently arranged as such: AssetCategoryX's primary key > is asset_id, which, obviously, is an Asset instance. Asset has a field > category_id which relates to a Category. And Asset could be an image, > a document or whatever. They have a few things in common, like a title > and an id, but an image and a document or a person or whatever asset I > choose to create differ A LOT. > > What I want to happen is when I get an asset (through get, first or > all) I want it to check its category and add an association called > "extended" that creates a relationship with the proper extended model. > > So, what I want, is for Asset to have (I think) IF it's category 1: > > belongs_to :asset_category1, :name => :extended > > IF it's category2: > > belongs_to :asset_category2, :name => :extended > > I'm guessing I need to use one of the "before" hooks, but I'm a little > confused as to which. So, I guess the real question is, can I create a > relationship "on the fly" and if so, how? --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "DataMapper" 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/datamapper?hl=en -~----------~----~----~----~------~----~------~--~---
