0

我想以 xml 向某些第三方服务发送请求,并期望以 xml 响应。我正在寻找一些宝石或任何想法如何做到这一点。

我的想法是

  1. 做一些parttail _example.xml.builder

  2. onclick 从我的视图到某个按钮将 ajax 请求发送到控制器操作并使用 render_to_string 呈现该 xml 文档,然后

  3. 将其保存在某个变量中

  4. 然后以相同的操作调用该服务方法

但这不是正确的事情,因为我期望应该有比我建议的事情更有效的事情

4

1 回答 1

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,祝你好运。

于 2013-01-24T13:26:12.313 回答