Bryan,

On Thu, Jan 29, 2009 at 19:40, Bryan <[email protected]> wrote:
>
> Thanks for the response Martin.
>
> I'm assuming I would then have to query each table seperately and
> combine the results of each query into one array.

Yep, I think that's the only way?

> How would I go about combining several collections into one while
> taking into account ordering? (i.e if i want to order the results by
> created_at)

This is thrown together very quickly and not tested at all, but maybe something
along these lines does the trick. (I'm not really familiar with
Array#sort though,
but it should at least head into the right direction?)

module Comment
 def self.register_commenting_model(model)
   (@commenting_models ||= []) << model
 end
 def self.commenting_models
   @commenting_models
 end
 def self.comments_for_user(user)
   commenting_models.inject([]) do |results, model|
     results << model.all(:user => user, :order => [ :created_at.desc ])
   end.flatten.sort do |x,y|
     x.created_at <=> y.created_at
   end
 end
end

# use it like so
Comment.comments_for_user(User.get(1))

HTH
Martin

> -bryan
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"DataMapper" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/datamapper?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to