我想在xml中向某些第三方服务发送请求,并期望在xml中响应。我正在寻找一些宝石或任何想法如何做到这一点。
我想到的是
制作一些_example.xml.builder
从我的视图中点击某个按钮向控制器操作发送ajax请求,并使用render_to_string呈现该xml doc然后
将其保存在某个变量中
然后在同一操作中调用该服务方法
但这并不恰当,因为我认为应该有一些比我建议的东西更有效的东西
答案 0 :(得分:0)
RoR本身并不使用XML,因此需要进行一定程度的转换。
话虽如此,在RoR应用程序中,XML生成非常简单。有几种方法可以做到这一点,我最喜欢的是将所需数据构建为Hash(Ruby原生),然后是the_hash.to_xml。
如果希望得到一致的结果,也可以在模型类中定义XML转换:
class Example < ActiveRecord::Base
# ensure that only column1, column2, etc are output as XML
def to_xml(options = {})
super( options.merge( select(:column1, :column2, etc) ) )
end
end
然后在你的控制器中:
poster = Example.find(123)
request = Net::HTTP.new('www.example.com', 80)
request.post('/path', poster.to_xml)
希望上面演示了将XML数据发布到远程主机的简单示例。如前所述,可以使用xml.builder
构建更复杂的XML HTH祝你好运。