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 1
Of course. res is an Array, while descendants is defined on Category.
@result = Category.roots #gives me 3, because i have 3 records with parent_id=NULL, what is fine
@result.TO_FULL_RECURSIVE_XML
You 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…
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?
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
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.