在 ERB 中使用 Nokogiri 迭代 XML 在末尾留下“0”字符

Iterating over XML with Nokogiri in ERB leaves '0' char at the end

在我的 Rails-应用程序中,我想处理一些 XML 以在 ERB 视图中使用。当迭代 XML 时,在每个 "each" 迭代结束时都有一个随机的“0”,我不知道它来自哪里以及如何摆脱它。

XML 来自控制器中的数据库查询,然后 XML 存储在 '@template':

@template = Nokogiri::XML(@formclass.first[:definition])

XML 看起来像这样:

<form-template>
  <fields>
    <field type="radio-group" label="This Label 1" inline="true" class="assessment_value" name="frage1">
      <option label="Immer" value="1">Immer</option>
      <option label="Meistens" value="2">Meistens</option>
    </field>
    <field type="radio-group" label="This other label" inline="true" class="assessment_value" name="frage2">
      <option label="Mehr als einmal am Tag" value="1">Mehr als einmal am Tag</option>
      <option label="Einmal am Tag" value="2">Einmal am Tag</option>
    </field>
  </fields>
</form-template>

在 erb 视图中:

<%= @template.css('field').each do |field_node| -%>
  foo
<% end -%>

结果是这样的:

foo foo 0

在控制器中迭代时,没有“0”:

@template.css('field').each do |field_node|
  logger.debug("foo")
end

foo foo

我做错了什么?提前致谢!

您似乎输出了 each 的全部结果,而您可能想要输出 迭代值 :

<% @template.css('field').each do |field_node| %>
  <%= raw(field_node.text) %>
<% end %>