hi, how can i select & build a recursive xml-response of all roots (PLURAL) ?meaning not only 1st-level-children, but all level... eg FaqCategory.find(:all, :conditions => [''parent_id IS NULL'']).ALL.full_set but for some reason, i dont get it.... help thx -- Posted via http://www.ruby-forum.com/.
Tom Tom wrote:> hi, > > how can i select & build a recursive xml-response of all roots (PLURAL) > ?meaning not only 1st-level-children, but all level...That''s what the Model#descendants method in awesome_nested_set does. Go read the rdoc -- it''s brief but clear.> > eg > > FaqCategory.find(:all, :conditions => [''parent_id IS > NULL'']).ALL.full_setWhat the heck is that?> > but for some reason, i dont get it....The docs are your friend. Also, there are some articles on the Web about the basics of the nested set concept. You should probably read some of them.> > help > > thxBest, -- Marnen Laibow-Koser http://www.marnen.org marnen-sbuyVjPbboAdnm+yROfE0A@public.gmane.org -- Posted via http://www.ruby-forum.com/.
hi, i think u didnt understand my question: how do i get ALL roots PLUS all descendants in one go? res = Category.find(all, conditions{parent_id IS NULL}) res.descendants>> descendants works only on a result of size of 1regs -- Posted via http://www.ruby-forum.com/.
Tom Tom wrote:> hi, i think u didnt understand my question: > > how do i get ALL roots PLUS all descendants in one go?I remember that there''s a way to do this (besides find :all), but you''ll have to check the docs. If you can''t find it after reading the docs, let me know.> > > res = Category.find(all, conditions{parent_id IS NULL}) > res.descendants > >>> descendants works only on a result of size of 1Of course. res is an Array, while descendants is defined on Category.> > regsBest, -- Marnen Laibow-Koser http://www.marnen.org marnen-sbuyVjPbboAdnm+yROfE0A@public.gmane.org -- Posted via http://www.ruby-forum.com/.
im looking at it right now, but it doesnt look promising. seems i have to play around with the xml-builder again. any other ideas? regs -- Posted via http://www.ruby-forum.com/.
Tom Tom wrote:> im looking at it right now, but it doesnt look promising. seems i have > to play around with the xml-builder again. any other ideas?You can use awesome_nested_set for what you''re describing. What do you mean when you say it "doesn''t look promising"? Where''s the problem? What don''t you understand?> > > regsBest, -- Marnen Laibow-Koser http://www.marnen.org marnen-sbuyVjPbboAdnm+yROfE0A@public.gmane.org -- Posted via http://www.ruby-forum.com/.
hi, ok, what i need and dont know know how to do is: @result = Category.roots #gives me 3, because i have 3 records with parent_id=NULL, what is fine @result.TO_FULL_RECURSIVE_XML ####### again, i want a xml-structure of all root-records with their children, and their children , and their children etc.... i can do it if i have only 1 result, but dont know how to build the xml if i have, lets say 30+ roots... thx -- Posted via http://www.ruby-forum.com/.
Tom Tom wrote:> hi, > > ok, what i need and dont know know how to do is: > > > @result = Category.roots > #gives me 3, because i have 3 records with parent_id=NULL, what is fine > > @result.TO_FULL_RECURSIVE_XMLYou might just want to do Category.find :all, :order => ''lft'', which will give you all the records in the right order. Alternatively, you could make all 3 current root elements into children of a new, single, root, and then just fetch all descendants of the new root.> > > ####### > again, i want a xml-structure of all root-records with their children, > and their children , and their children etc.... > > i can do it if i have only 1 result, but dont know how to build the xml > if i have, lets say 30+ roots... > > thxBest, -- Marnen Laibow-Koser http://www.marnen.org marnen-sbuyVjPbboAdnm+yROfE0A@public.gmane.org -- Posted via http://www.ruby-forum.com/.
yeah, i tried that too, but that underlaying issue here is the recursiv xml... thx anyway for ur help. -- Posted via http://www.ruby-forum.com/.
Tom Tom wrote:> yeah, i tried that too, but that underlaying issue here is the recursiv > xml...Once you''ve got the array in memory, it''s not hugely difficult to step through it and generate XML. What isn''t working?> thx anyway for ur help.Best, -- Marnen Laibow-Koser http://www.marnen.org marnen-sbuyVjPbboAdnm+yROfE0A@public.gmane.org -- Posted via http://www.ruby-forum.com/.
ok, this is a function, sitting on my model: category.rb ###################################################################### A ) ########## def full_xml(builder=nil) to_xml(:builder => builder, :skip_instruct => true) do |xml| children.each { |child| child.full_xml(xml) } end end ########## so when i call: @category = Category.find params[:id] respond_to do |format| format.html # show.html.erb format.xml { render :xml => @category.full_xml} end> i get a nice recursiv xml data.###################################################################### B) in this case @categorIES = Category.roots #means all with parent_id IS NULL but i dont know how to itereate thorugh to build that xml again... any ideas? thx -- Posted via http://www.ruby-forum.com/.