动态地向Builder标签添加属性

时间:2011-06-24 21:19:29

标签: ruby builder

这可能是一个糟糕的标题。如果有人对如何描述这个问题有更好的了解,那么很高兴听到它。

如果我在Python中使用ElementTree构建XML文档,我可以按照

的方式做一些事情。
tag = ET.SubElement(root, 'tag')
tag.set('foo', 'true')
if bar
  tag.set('baz', 'false')

但是使用Ruby中的Builder,我可以看到如何设置标记属性的唯一方法是执行以下操作:

xml.tag :foo => 'true', :baz => 'false'

有没有办法让我在那之后分配baz?或者我必须重写整个事情:

if bar
  xml.tag :foo => 'true', :baz => 'false'
else
  xml.tag :foo => 'true', :baz => 'true'
end

1 个答案:

答案 0 :(得分:1)

当您不就地更新时,代码更清晰。为什么不呢?

xml.tag :foo => 'true', :baz => (bar ? 'true' : 'false')