2013-02-01 4 views
2

이것은 내 params 해시입니다. 각 이름과 email_id를 가져 와서 추가로 처리하려고합니다. Pls는 내가 어떻게 이것을 얻을 수 있는지에 관해 나에게 이야기한다. 내가 레일을 처음 사용하는 이래로 나를 도와주세요.중첩 된 속성에 액세스

{ 
    "utf8"=>"✓", 
    "_method"=>"put", 
    "authenticity_token"=>"VBJ7NrYDzftlVMYdfNewxADAEGWE8ctau4Zpx3JcjbQ=", 
    "game_school"=>{ 
      "game_school_invites_attributes"=>{ 
       "name"=>"AAA", 
       "email"=>"[email protected]", 
       "1359712354138"=>{ 
        "name"=>"ABCD", 
        "email"=>"[email protected]" 
       }, 
       "1359712366842"=>{ 
        "name"=>"CC", 
        "email"=>"[email protected]" 
       } 
      } 
    }, 
    "commit"=>"invite", 
    "model1_id"=>"5", 
    "model2_id"=>"4" 
} 
+1

를 사용하여 수행하는 하나의 방법입니다. 'game_school_invites_attributes'에는 ** name ** ** email ** 및 ** 13597112354138 ** 등등이 있습니다. 같은 구조를 따라야합니다. ** name ** 및 ** email **는 다른 경우와 마찬가지로 다른 색인 아래에 중첩되어야합니다. 여기서 구조보기를 위해보기 코드를 표시 할 수 있습니다. –

답변

1

여기에 해시의 일부에 문제가 발생한 것 같습니다 재귀 함수

def return_name_and_email(hash) 
    if hash['name'] && hash['email'] 
    puts "Name: #{hash['name']}" 
    puts "Email: #{hash['email']}" 
    end 

    hash.keys.each do |key| 
    return_name_and_email(hash[key]) if hash[key].is_a?(Hash) 
    end 
end 

return_name_and_email params 
관련 문제