访问嵌套属性

时间:2013-02-01 09:54:14

标签: ruby-on-rails param

这是我的params哈希。我只想获得每个名称和email_id,并希望进一步处理这些问题。请告诉我怎样才能得到这个。帮助我,因为我是铁杆新手。

{
     "utf8"=>"✓",
     "_method"=>"put",
     "authenticity_token"=>"VBJ7NrYDzftlVMYdfNewxADAEGWE8ctau4Zpx3JcjbQ=",
     "game_school"=>{
          "game_school_invites_attributes"=>{
               "name"=>"AAA",
               "email"=>"aa@bb.com",
               "1359712354138"=>{
                    "name"=>"ABCD",
                    "email"=>"aaa@aaa.com"
               },
               "1359712366842"=>{
                    "name"=>"CC",
                    "email"=>"bbb.aa@gmail.com"
               }
          }
     },
     "commit"=>"invite",
     "model1_id"=>"5",
     "model2_id"=>"4"
}

1 个答案:

答案 0 :(得分: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