Polymorphic many-to-many relationship?

Good morning,

I need to implement a many-to-many polymorphic relationship. Any of my
books, Google and the search couldn’t help me.

habtm doesn’t work cause it doesn’t support :polymorphic so this is my
approach so far:

ActivityType model:
has_many :activity_type_scopes, :as => :resource

BuildingType model:
has_many :activity_type_scopes, :as => :activity_type_id
BlockType model:
has_many :activity_type_scopes, :as => :activity_type_id

ActivityTypeScope model:
belongs_to :activity_type
belongs_to :resource, :polymorphic => true

ActivityTypeScope migration:
create_table :activity_type_scopes, :id => false do |t|
t.integer :activity_type_id
t.integer :resource_id
t.string :resource_type
t.timestamps
end

I don’t really like that approach but 2.2.2 doesn’t seem to have a
decent solution to this. Anyway when I load a the fuxture
ActivityTypeScope:
one:
activity_type: burglary
resource: <%= BuildingType.find(Fixtures.identify(:row_house)) %>

It says BuildingType with the ID 1234567 couldn’t be found, if I use the
ID instead of BuildingType.find(Fixtures.identify(:row_house)) I get no
errors but resource_id and resource_type is NULL in the database.

Anyone knows what’s wrong with this or - even better - does anyone have
a better solution to my polymorphic habtm problem?

Thanks a lot,
Heinz

Managed to get it working by changing the fixture to:
resource: <%= Fixtures.identify(:row_house) %>
resource_type: BuildingType

Still don’t like it cause that’s not what RoR is about. Any help would
be still highly appreciated :slight_smile: