2015-10-21 5 views
-1
name: { 
     "accounts"=>{ 
      "data"=>[ 

       { 
       "access_token"=>"CAAUCR7n0ZC50BAGmqTb3FEYz9FzZCZAZBFdVZC6AM3iQrGUsVqWvCfI5q5vh4seRH6LwIQTSkZAznzeBaPlZBjQ3zcwdfWxPBIr78FZBVa8pymUzVX0UESSS7QC0Dm7iIUCMyRH175HV6ZCa2ugBmbJNB7joZB7oiILPH5jtpcCLkg8e7ztxyjeSODSO4ZBAM9z1pkZD", 
       "name"=>"UNX", 
       "id"=>"387832931391777", 
       }, 
       { 
       "access_token"=>"CAAUCR7n0ZC50BAEYnXR7bWGvhktsGXCaB43vB0mhSuKgZBQG1m5FyovssyVKt0XYv7K7essxPkVPU3nQZCqrQJeTtWhApV1cSYGsb4JbNmYlUiHmLHueEBjuomqRWVX6tvMZA0dA5zqMApbmPUtA7SBqruWUFzZAwZC9xZBXFMZCZAW7WNEL7epkb9dmiL2pX3AoZD", 
       "name"=>"Fuitter", 
       "id"=>"1412081982453898", 
       } 
       ]}} 

Je tente d'obtenir la name clé du tableau data de hash. J'ai utilisé each pour boucler mais de cette façon j'ai dû nicher la boucle à l'intérieur de la boucle. Y a-t-il une autre façon de faire ce travail?boucle à travers un tableau de hachages

Cette clé name est en fait une colonne dans ma base de données de type de données json.

<% session[:user].account.name.each do |test| %> 
    <% test.each do |me| %> 
    <%= me['data']['name']%> #unable to fetch name and gives me undefined method `[]' for nil:NilClass error 
    <br> 
    <% end %> 
<% end %> 

Je suis en train d'obtenir la valeur par des boucles de nidification, mais je suis arrivé cette erreur

unable to fetch name and gives me undefined method `[]' for nil:NilClass error 
+0

J'ai vu votre exemple JSON et je pense que cela le code devrait être. '<% session [: utilisateur] .name.accounts.each faire | test | %> <% test ['données']. Each do | me | %> <% = moi ['nom']%> <%end%> <%end%> ' – trnthanhtu

+1

Voulez-vous dire que vous voulez les valeurs des clés' "nom" '? –

Répondre

0

Est-ce que cette façon:

data_hash = { name: { 
     "accounts"=>{ 
      "data"=>[ 

       { 
       "access_token"=>"CAAUCR7n0ZC50BAGmqTb3FEYz9FzZCZAZBFdVZC6AM3iQrGUsVqWvCfI5q5vh4seRH6LwIQTSkZAznzeBaPlZBjQ3zcwdfWxPBIr78FZBVa8pymUzVX0UESSS7QC0Dm7iIUCMyRH175HV6ZCa2ugBmbJNB7joZB7oiILPH5jtpcCLkg8e7ztxyjeSODSO4ZBAM9z1pkZD", 
       "name"=>"UNX", 
       "id"=>"387832931391777", 
       }, 
       { 
       "access_token"=>"CAAUCR7n0ZC50BAEYnXR7bWGvhktsGXCaB43vB0mhSuKgZBQG1m5FyovssyVKt0XYv7K7essxPkVPU3nQZCqrQJeTtWhApV1cSYGsb4JbNmYlUiHmLHueEBjuomqRWVX6tvMZA0dA5zqMApbmPUtA7SBqruWUFzZAwZC9xZBXFMZCZAW7WNEL7epkb9dmiL2pX3AoZD", 
       "name"=>"Fuitter", 
       "id"=>"1412081982453898", 
       } 
       ] 
      } 
     } 
     } 

data_hash[:name]['accounts']['data'].map { |d| puts d['name'] } 
    # => UNX 
    # => Fuitter 
+0

Raj Shakya, s'il vous plaît envisager d'upvoting la réponse aussi si cela vous a vraiment aidé à résoudre votre problème. Merci. –