Hey, i have overwritten the to_xml method with these: http://pastie.org/793456 and i call it with: render :xml => Focat.find(:all) but the xml elements are displayed twice! could someone see my failure?
Hey, i have overwritten the to_xml method with these:http://pastie.org/793456 and i call it with: render :xml => Focat.find(:all) but the xml elements are displayed twice! could someone see my failure?
rails will call to_xml on all each member of the collection, but it looks like your to_xml is doing a second Focat.find(:all).
Fred
Frederick Cheung wrote:
i found out that to_xml is called twice. but how can i solve this problem?
Like i said you shouldn't be doing that Focat.all inside your to_xml method - rails is already iterating over that collection for you
Fred
Frederick Cheung wrote:
Frederick Cheung wrote:
>> i found out that to_xml is called twice. but how can i solve this >> problem?
> Like i said you shouldn't be doing that Focat.all inside your to_xml > method - rails is already iterating over that collection for you
> Fred
how does rails that do?
You've called render :xml, passing an array. Rails calls to_xml on the array, which in turns calls to_xml on every element of the array.
Fred
Frederick Cheung wrote:
Frederick Cheung wrote:
>> how does rails that do?
> You've called render :xml, passing an array. Rails calls to_xml on the > array, which in turns calls to_xml on every element of the array.
> Fred
ok, but i need this strukture of the xml file, where i show focats and fotos.
that's fine, but if you want to be able to write render :xml => Focat.all then you need to let rails do the outermost iteration. You may not care about that at all though - you can generate your xml separately and then do render :xml => some_xml Fred
Frederick Cheung wrote:
Frederick Cheung wrote: >> ok, but i need this strukture of the xml file, where i show focats and >> fotos.
> that's fine, but if you want to be able to write render :xml => > Focat.all then you need to let rails do the outermost iteration. You > may not care about that at all though - you can generate your xml > separately and then do render :xml => some_xml > Fred
hey, now i tried it with: @focats = Focat.find(:all) xml = @focats.to_xml render :xml => xml but also the entries are twice. i dont get it.
This code is basically identical to the previous version (it's just spelling out what rails was doing for you). The to_xml method on arrays calls to_xml on every single object in the array.
Fred
Frederick Cheung wrote: