xml serialization - Rails 2: #to_xml(:methods => :method_name) when #method_name returns an Array -
Is this override possible how a #to_xml provides a method result if it is an array?
# is not a field, but a method and @ object.numbers # = & gt; [0,1,2,3,4,5]
Currently it happens:
@ object.to_xml (: methods = & gt; numbers) = & Gt; "& Lt; Object & gt; & lt; Number & gt; 012345 & lt; / number & gt; & lt; / object & gt;" Is it possible to override this behavior by which it returns: @ object.to_xml (: methods =>: numbers ) = & Gt; "LT; Object & gt; & lt; Number & gt; & lt; Number & gt; 0 & lt; / number & gt; & lt; Number & gt; 1 & lt; / number & gt; & lt; Number & gt; 2 & lt; / Numbers & gt; & lt; Number & gt; 3 & lt; / Numbers & gt; & lt; Number & gt; 4 From & lt; / Numbers & gt; & lt; Number 5> (this is easy to read formatted) < / P>
Thank you in advance for your suggestions!
You have two options:
-
Rail 3 Upgrade to This is already the desired output.
Mani "activism", '~ & gt; 3.2.12 'is required "active_model" # This may be the result of an Active Record Model class ActiveModel :: serializers :: XML def number (0..5) .to_a end DEF properties {} end to include the end result = Result.new results .to_xml (: methods = & gt; numbers) Output:
& lt ;? XML version = "1.0" encoding = "UTF-8"? & Gt; & Lt; Results & gt; & Lt; Number type = "array" & gt; & Lt; Number type = "integer" & gt; 0 & lt; / Number & gt; & Lt; Number type = "integer" & gt; 1 & lt; / Number & gt; & Lt; Number type = "integer" & gt; 2 & lt; / Number & gt; & Lt; Number type = "integer" & gt; 3 & lt; / Number & gt; & Lt; Number type = "integer" & gt; 4 & lt; / Number & gt; & Lt; Number type = "integer" & gt; 5 & lt; / Number & gt; & Lt; / Number & gt; & Lt; / Results & gt; -
Use the XML Builder where you are in full control of the output. You must manually specify all the attributes.
# app / view / results / show.xml.bilderxml.instruct! Xml.result {xml.numbers {results xml.number n end}} Output:
& lt; XML version = "1.0" encoding = "UTF-8" & gt; & Lt; Results & gt; & Lt; Number & gt; & Lt; Number & gt; 0 & lt; / Number & gt; & Lt; Number & gt; 1 & lt; / Number & gt; & Lt; Number & gt; 2 & lt; / Number & gt; & Lt; Number & gt; 3 & lt; / Number & gt; & Lt; Number & gt; 4 & lt; / Number & gt; & Lt; Number & gt; 5 & lt; / Number & gt; & Lt; / Number & gt; & Lt; / Results & gt;
Comments
Post a Comment