You may have to write it like:

has n, :shared_resources, :through
=> :shared_resource_ordinals, :order =>
['owner_shared_resource.ordinal']

I don't know if order clauses work through joins like that though, but
give it a shot!

On Aug 3, 10:18 pm, Corin <[email protected]> wrote:
> Hi,
>
> I'm working with a many-to-many relationship between objects (Owner)
> that own a shared resource (SharedResource), where the relationship
> has an attribute that indicates the ordering of shared resources for a
> particular owner (ordinal). My problem is that I can't seem to get an
> order list of shared resources on the owner side.
>
> Here's my setup:
>
>     class Owner
>       ...
>       has n, :owner_shared_resources, :order => [:ordinal]
>       has n, :shared_resources, :through => :owner_shared_resources
>     end
>
>     class OwnerSharedResource
>       ...
>       belongs_to :owner, :key => true
>       belongs_to :shared_resource, :key => true
>       property :ordinal, Integer
>     end
>
>     class SharedResource
>       ...
>       has n, :owners, :through => :owner_shared_resources
>     end
>
> Using `Owner.first.shared_resources` gives an unordered list. I have
> tried this:
>
>     class Owner
>       ...
>       has n, :shared_resource_ordinals, OwnerSharedResource, :order =>
> [:ordinal]
>       has n, :shared_resources, :through => :shared_resource_ordinals
>     end
>
> But to no avail.
>
> I have ended up with:
>
>     class Owner
>       ...
>       has n, :owner_shared_resources, :order => [:ordinal]
>       def shared_resources
>         self.owner_shared_resources.map {|x| x.shared_resource}
>       end
>     end
>
> Which has obvious drawbacks.
>
> What am I missing here?

-- 
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