0

xml でサードパーティのサービスにリクエストを送信し、xml での応答も期待しています。私はいくつかの宝石やこれを行う方法のアイデアを探しています。

私の心にあることは

  1. 一部の _example.xml.builder を作成します

  2. 私のビューからいくつかのボタンへのonclickは、コントローラーアクションにajaxリクエストを送信し、render_to_stringを使用してそのxmlドキュメントをレンダリングし、次に

  3. いくつかの変数に保存します

  4. そして、同じアクションでそのサービスメソッドを呼び出します

しかし、私が提案したものよりも効率的なものがあるはずなので、それは適切なことではありません

4

1 に答える 1

0

RoR はネイティブで XML を使用しないため、ある程度の変換が必要です。

そうは言っても、RoR アプリケーションでの XML 生成は非常に単純です。これにはいくつかの方法がありますが、私のお気に入りは、必要なデータをハッシュ (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 は xml.builder を使用して構築できます。

HTHと幸運。

于 2013-01-24T13:26:12.313 に答える