Ich habe Probleme mit dem Zugriff auf die rohe XML von einem Builder :: XmlMarkup-Objekt.TypeError: kann Builder :: XmlMarkup nicht in Array konvertieren
irb> xml = Builder::XmlMarkup.new(:target => '')
=> <pretty_inspect/>
irb> xml.foo("bar")
=> "<pretty_inspect/><foo>bar</foo>"
irb> puts xml
TypeError: can't convert Builder::XmlMarkup to Array (Builder::XmlMarkup#to_ary gives String)
from (pry):122:in `puts'
In einem Skript, wo ich Builder bin mit dem XML zu erstellen, ich vorbei @xml an einen POST:
response = HTTParty.post(API_ENDPOINT, :body => @xml)
Dies gibt den gleichen Fehler:
TypeError (can't convert Builder::XmlMarkup to Array (Builder::XmlMarkup#to_ary gives String)):
Natürlich, wenn ich @ xml.to_xml mache, gibt es keinen Fehler zurück, aber es fügt </to_xml>
dem xml hinzu, was bedeutet, dass es das XML-Objekt nicht wirklich in xml konvertiert. Das ist nicht was ich will.
Wie kann ich Zugriff auf die XML-Datei erhalten, damit ich sie an meine Post weitergeben kann, ohne dass zusätzliche Knoten zu meiner XML-Datei hinzugefügt werden?
Edit: mögliche Lösung
tun @xml.target!
das Problem zu lösen scheint, aber ich bin nicht sicher, ob ich, warum verstehen.
response = HTTParty.post(API_ENDPOINT, :body => @xml.target!)
Vielleicht kann mir jemand helfen zu verstehen, was hier passiert.