0

私はこのハッシュを持っています:

{
  "results"=>[
    {
      "name"=>"Pete Gallego",
      "party"=>"D",
      "state"=>"TX",
      "district"=>"23",
      "phone"=>"202-225-4511",
      "office"=>"431 Cannon House Office Building",
      "link"=>"http://gallego.house.gov"
    },
    {
      "name"=>"John Cornyn",
      "party"=>"R",
      "state"=>"TX",
      "district"=>"Senior Seat",
      "phone"=>"202-224-2934",
      "office"=>"517 Hart Senate Office Building",
      "link"=>"http://www.cornyn.senate.gov"
    },
    {
      "name"=>"Ted Cruz",
      "party"=>"R",
      "state"=>"TX",
      "district"=>"Junior Seat",
      "phone"=>"202-224-5922",
      "office"=>"B40b Dirksen Senate Office Building",
      "link"=>"http://www.cruz.senate.gov"
    }
  ]
}

次のようなビューに情報を表示しようとしています。

name Pete Gallego
Party D
state TX
district 23
. . .

値の前に各キーが配置されます。

このようなことを試みると:

<ul>
    <% @my_hash.values[0].each do |key, value| %> 
      <li><%= "#{key.to_s} #{value.to_s}" %> </li>
    <% end %> 
</ul>

次のようなビューが表示されます。

- {"name"=>"Pete Gallego", "party"=>"D", "state"=>"TX", "district"=>"23", "phone"=>"202-225-4511", "office"=>"431 Cannon House Office Building", "link"=>"http://gallego.house.gov"}
- {"name"=>"John Cornyn", "party"=>"R", "state"=>"TX", "district"=>"Senior Seat", "phone"=>"202-224-2934", "office"=>"517 Hart Senate Office Building", "link"=>"http://www.cornyn.senate.gov"}
- {"name"=>"Ted Cruz", "party"=>"R", "state"=>"TX", "district"=>"Junior Seat", "phone"=>"202-224-5922", "office"=>"B40b Dirksen Senate Office Building", "link"=>"http://www.cruz.senate.gov"}

key のto_s後に valueto_sを出力している場合、各項目のハッシュ全体を取得している理由がわかりません。私は何かを誤解しています。

4

1 に答える 1

4

配列をループしていますが、各配列項目 (ハッシュ) の各キーと値のペアもループする必要があります。これはおそらくそれを解決します:

<ul>
    <% @my_hash.values[0].each do |item| %>
        <% item.each do |key,value| %>
            <li><%= "#{key.to_s} #{value.to_s}" %> </li>
        <% end %>
    <% end %>
</ul>
于 2013-03-28T13:27:39.867 に答える