【问题标题】:Ruby Builder Gem - dynamically set node nameRuby Builder Gem - 动态设置节点名称
【发布时间】:2012-11-07 12:19:49
【问题描述】:

我目前正在使用 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

该代码将生成一个节点<send:ForFlowBased>。同样,如果我调用builder.(top_level_node),生成的xml 是<call:ForFlowBased>。我希望动态地向构建器发送我想在其上调用的方法,而不向 XML 添加发送或调用。

【问题讨论】:

    标签: ruby builder


    【解决方案1】:

    这样做:

    builder.tag!(top_level_node) do |top_level_node|
    
    end
    

    【讨论】:

      猜你喜欢
      • 2014-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-10
      • 1970-01-01
      • 2016-05-25
      • 1970-01-01
      相关资源
      最近更新 更多