Please see wiki for discussion.

The DM polymorphic gem mimics AR style polymorphism. It has been decided that DM will not follow this path, since it really isn’t very nice on the DB and there are other ways, that do not require DBA to cry to achieve the same result.

That being said this is still useful for those ppl wishing to convert rails apps over.

One Massive Caveat is that using this you will get n+1 calls to the db atm if you do Comments#commentable for example. It needs a proxy object if anyone cares to write one.

This is highly experimental software, use it at your own risk.

Example Usage.

class Comment

include DataMapper::Resource

is :polymorphic, :commentable

property :id,   Integer, :serial => true
property :text, String

end

class Post

include DataMapper::Resource

property :id, Integer, :serial => true
property :name,  String  

has n, :comments, :polymorphically => :commentable

end

class Article

include DataMapper::Resource

property :id, Integer, :serial => true
property :name,  String  

has n, :comments, :polymorphically => :commentable

end

This will then provide the following methods

Comment#commentable Comment#post Comment#article Post#comments Article#comments

What is needed is a Comment.commentables or something method so there is a nice proxy to avoid having all the loading issues.