On Mar 11, 2009, at 8:05 PM, Tom Ha wrote:

>
> Hi there,
>
> what's the most resource friendly way to program the following?
>
> In the VIEW, I need to show a 'nested :has_many' structure like this:
>
> =============
> Author1
>  BookA
>  ...
>    ChapterX
>    ...
>      Page-i
>      ...
>  BookB
>  ...
>    ChapterX
>    ...
>      Page-i
>      ...
> Author2
> ...
> =============
>
> I assume this means that:
> - Author, Book, Chapter, Page must be "collections" (@authors, @books,
> @chapters, @pages)
> - I need to have a :partial for each collection
> - Each :partial contains the next :partial (nested parent-child
> structure)
>
> My question:
> - Doing (for example) the query for @books directly within the  
> 'author'
> :partial (and so on) would be stupid, wouldn't it...
> - So how do I need to write the database queries in the controller (in
> the most efficient way) for such a case?

@authors = Author.find(:all, :include => { :books => { :chapters  
=> :pages }})

Of course, that's going to instantiate all the authors, books,  
chapters, and pages into objects in your program...
>
> - How would this look like in the view (how to access the values)?  
> (for
> example in any child :partial)
>
> Thank you very much for your help!
> Tom
> -- 


In your main view,

<%= render :partial => 'author', :collection => @authors %>

In the _author.html.erb

<%= render :partial => 'book', :collection => author.books %>

etc.

-Rob

Rob Biedenharn          http://agileconsultingllc.com
[email protected]



--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" 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/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to