1

多くの値を持つハッシュがあります。値ごとに、リスト エントリを生成したいと考えています。
以下を実行すると、ハッシュの最後のエントリのみが表示されます。

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

dataYAML からロードされます

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

ハッシュからのすべての値をhtmlリストに追加するにはどうすればよいですか? ありがとう

4

1 に答える 1

1

それが実際の YAML ファイルである場合、オブジェクトが 1 つしか表示されない理由は、キーがすべて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 に答える