2013-01-24 36 views
0

我想向xml中的某些第三方服务发送请求,并期待xml中的响应。我正在寻找一些宝石或任何想法如何做到这一点。是否有任何用xml格式向某些服务发送请求的gem

件事是在我心中是

  1. 做出一些partail _example.xml.builder

  2. 的onclick从我的观点有些按钮发送Ajax请求控制器动作,并使用render_to_string呈现该XML文档,然后

  3. 将它保存在某个变量

  4. ,然后调用在相同的行动,服务方法

但它是不恰当的事情,因为我想到应该有一些事情更有效率比我建议的事情

回答

0

回报率本身并不使用XML所以一定程度的转换是必须的。

话虽如此,XML生成在RoR应用程序中非常简单。有几种方法可以做到这一点,我最喜欢的是将所需的数据构建为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和祝你好运。

相关问题