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:

  1. 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;    
  2. 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

Popular posts from this blog

excel vba - How to delete Solver(SOLVER.XLAM) code -

github - Teamcity & Git - PR merge builds - anyway to get HEAD commit hash? -

ios - Replace text in UITextView run slowly -