6
Builder :: XmlMarkupオブジェクトから未処理のXMLにアクセスする際に問題があります。私はXMLを作成するために、Builderを使用しているスクリプトでTypeError:Builder :: XmlMarkupを配列に変換できません
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'
、私はPOSTに@xmlを渡している:
TypeError (can't convert Builder::XmlMarkup to Array (Builder::XmlMarkup#to_ary gives String)):
:
response = HTTParty.post(API_ENDPOINT, :body => @xml)
これは、同じエラーを与えます
もちろん、@ xml.to_xmlを実行するとエラーは返されませんが、XMLに</to_xml>
が追加されます。つまり、実際にXMLオブジェクトをxmlに変換していません。それは私が望むものではありません。
xmlにアクセスできるようにするには、xmlに余分なノードを追加せずに投稿に渡すことができますか?
編集:可能な解決策
@xml.target!
を行うには、問題を解決するようだが、私は理由を理解していません。
response = HTTParty.post(API_ENDPOINT, :body => @xml.target!)
おそらく、誰かが私がここで何が起こっているのか理解するのを助けることができます。
puts xml
を使用して