Polymorphic :through relationship

Is it possible to implement a model where:

Exit is polymorphic and can be of type: Door, Window, FootPath

and

Rooms are related through Exits with eachother.

I figured out that I would implement polymorphic exits, and on top of
that I will use the through model, so the models' definitions look
like:

class Room
has_many :exits,
has_many :rooms, through :exits

class Exit
belongs_to :resource, :polymorphic => true
belongs_to :room

class Door
has_one :exit_entry, :as => :resource

class Window
has_one :exit_entry, :as => :resource

class FootPath
has_one :exit_entry, :as => :resource

Also Im not sure what foreign key refering to Room should be in Exit?
I quess I should have something like:
origin_room_id
goto_room_id
but on the other hand the :through model requires, that there is
room_id

So overall any help on all that anyone?