在 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 %>
在我的 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 %>