3

現在、Ruby の Builder gem を使用して、アプリケーション内のリソースの XML 表現を生成しています。XML 表現には、常に同じ構造の複数の子ノードがありますが、リソースのブール型プロパティの値に応じて、最上位ノードの名前が異なります。ビルダー ノードを動的に生成する方法はありますか? このようなもの(これはすでに試しましたが、うまくいきません):

if resource.attr
  top_level_node = :ForFlowBased
else
  top_level_node = :ForNonSeamlessOffload
end

builder = Builder::XmlMarkup.new
builder.send(top_level_node). do |top_level_node|
....
end

そのコードは node を生成します<send:ForFlowBased>。同様に、 を呼び出すbuilder.(top_level_node)と、生成される xml は<call:ForFlowBased>. XMLにsendまたはcallを追加せずに、呼び出したいメソッドをビルダーに動的に送信しようとしています。

4

1 に答える 1

4

これを行う:

builder.tag!(top_level_node) do |top_level_node|

end
于 2012-11-07T12:24:27.607 に答える