Symmetrical Routes for Nested Resources

I'm having trouble setting up nested resources is a certain way that I
believe makes sense.

Given rules like these:
* an owner owns many books
* a book can be owned by many owners
* an owner can own multiple copies of the same book

I have a many-to-many relationship of Owners-to-Books with the "link"
table (we'll call it "Ownerships" since I can't think of a nice name)
having an attribute for tracking the number of copies of a book an
owner owns.

I have no problem listing all books, or listing all owners:
* http://127.0.0.1:3000/books.xml
* http://127.0.0.1:3000/owners.xml

What I can't figure out is how to set up my routes/controllers to list
all books owned by a particular owner, and all owners that own a
particular book (i.e. what I call "symmetrical routes for nested
resources"). I'd like the URLs to look something like this:
* http://127.0.0.1:3000/books/3/owners.xml (lists all owners of book
3)
* http://127.0.0.1:3000/owners/7/books.xml (lists all books owned by
owner 7)

What's extra tricky is that I want the listings to also contain the
number of copies from the "link" table. So, for example,
http://127.0.0.1:3000/owners/7/books.xml might return the equivalent
of this as XML:

To Kill A MockingBird, 2
The Zombie Survival Guide, 1
War and Peace, 4

Please help this noob :slight_smile:

Thanks,

Mike

I have a same problem :slight_smile:

Hi, you might want to consider using a join model when you have a many to many. Ryan Bates covers this very nicely in his screencast that can be found here:

http://railscasts.com/episodes/47-two-many-to-many

Good luck,

-Conrad