Conditional table association?

I’m using a db to log two types of events, link events and tag
events. At first I had two tables, link_events & tag_events, but this
seemed not very DRY because the only column that was different
between them was link_id and tag_id respectively. So I made these

id int
user_id int
objtype_id int (holds ‘1’ or ‘2’ depending on if the item is a link
or a tag)
lort_id int (“link or tag id” == “lort” this holds the id of the
item involved in the event)

objtypes: (only has two records {1 => link, 2 => tag})
id int
name int

id int
url string

id int
name string

What I can’t figure out is how to tell the Event model that lort_id
belongs_to links if the value is 1, and that it belongs_to tags if
the value is 2. Is this possible/wise/insane?

Thanks in advance!

Jason F. - [email protected] -
work: (310) 601-8454
cell: (415) 254-4890
AIM/Skype: jfrankov

You’re on the right track. Look at the polymorphic associations
described in:

It was something like this that I figured out how to do in 1.0 about
a week before 1.1 introduced polymorphic associations.


Rob B.
[email protected]