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?