我想以 xml 向某些第三方服务发送请求,并期望以 xml 响应。我正在寻找一些宝石或任何想法如何做到这一点。
我的想法是
做一些parttail _example.xml.builder
onclick 从我的视图到某个按钮将 ajax 请求发送到控制器操作并使用 render_to_string 呈现该 xml 文档,然后
将其保存在某个变量中
然后以相同的操作调用该服务方法
但这不是正确的事情,因为我期望应该有比我建议的事情更有效的事情
我想以 xml 向某些第三方服务发送请求,并期望以 xml 响应。我正在寻找一些宝石或任何想法如何做到这一点。
我的想法是
做一些parttail _example.xml.builder
onclick 从我的视图到某个按钮将 ajax 请求发送到控制器操作并使用 render_to_string 呈现该 xml 文档,然后
将其保存在某个变量中
然后以相同的操作调用该服务方法
但这不是正确的事情,因为我期望应该有比我建议的事情更有效的事情
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,祝你好运。