2

私は次のようなハッシュを持っています:

@json = [{"id"=> 1, "username" => "Example"}, {"id"=> 2, "username" => "Example 2"}]

私はこのようなことをしたい:

<ul>
    <% @json.each do |user| %>
    <li><%= user.username %></li>
    <% end %>
</ul>

そして、2 つのユーザー名を含むリストを出力します。

IRBでこれを試してみました:

json2 = [{"id"=> 1, "username" => "Example"}, {"id"=> 2, "username" => "Example 2"}]
irb(main):076:0> json2.each do |user|
irb(main):077:1* user["id"]
irb(main):078:1> end
=> [{"id"=>1, "username"=>"Example"}, {"id"=>2, "username"=>"Example 2"}]
irb(main):079:0>
4

4 に答える 4

2

あなたが持っているのはHashであり、Userオブジェクトではありません。したがって、インデックス演算子 ( [])を使用してユーザー名にアクセスする必要があります。

<ul>

<% @json.each do |user| %>
  <li><%= user["username"] %></li>
<% end %>

</ul>
于 2013-01-16T02:58:27.157 に答える
2
json2 = [{"id"=> 1, "username" => "Example"}, {"id"=> 2, "username" => "Example 2"}]
json2.each do |user|
    puts user['username']
end
于 2013-01-16T07:54:30.813 に答える
2

コンソールに出力が必要な場合は、次のようにする必要があります。

@json = [{"id"=> 1, "username" => "Example"}, {"id"=> 2, "username" => "Example 2"}]
@json.collect{|json| puts json['username'] }
于 2013-01-16T08:39:14.930 に答える
0

配列にあるハッシュを反復したい場合は、これを使用できます。

@json = [{"id"=> 1, "username" => "user_name"}, {"id"=> 2, "username" => "user_name"}, {"id"=> 3, "username" => "user_name"}]

@json.each{|json| puts json['username'] } 

@json.collect{|json| json['username'] } 

@json.map{|json| json['username'] } 

ビューで必要な場合は、使用できます

<ul>
  <% @json.each do |user| %>
    <li><%= user["username"] %></li>
  <% end %>
</ul>
于 2015-09-19T09:35:50.923 に答える