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