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?
- 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
--
Posted via http://www.ruby-forum.com/.
--~--~---------~--~----~------------~-------~--~----~
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
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk+unsubscribe@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---
Rob Biedenharn
2009-Mar-12 03:07 UTC
Re: How to do queries for ''nested :partial'' structures ?
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 Rob-xa9cJyRlE0mWcWVYNo9pwxS2lgjeYSpx@public.gmane.org --~--~---------~--~----~------------~-------~--~----~ 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 rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Really cool! Thanks a lot, Rob! -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ 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 rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---