1

我有一个包含许多值的哈希。对于每个值,我想生成一个列表条目。
当我执行以下操作时,仅显示哈希中的最后一个条目。

<% data.each do |k, v| %>
    <li><%= v['name'] %> - <%= v['email'] %></li>
<% end %>

data从 YAML 加载

person:
   name: ABC
   email: xyz@gmail.com
person:
   name: LMN
   email: qrs@yahoo.com

如何将哈希中的所有值添加到 html 列表中?谢谢

4

1 回答 1

1

如果那是您的实际 YAML 文件,那么您只看到一个对象的原因是因为您的键都是person. 如果将其解析为哈希,则每个实例person都将存储在person键上,并且由于哈希键必须是唯一的,因此仅保留最后一条记录。

您可能希望将其构造为哈希数组(或 YAML 中的“映射序列”):

---
- name: LMN
  email: qrs@yahoo.com
- name: ABC
  email: xyz@gmail.com

然后迭代为:

<% data.each do |entry| %>
  <li><%= entry['name'] %> - <%= entry['email'] %></li>
<% end %>
于 2013-03-22T01:34:41.490 回答